Could you make sure that you are passing in the Content-Type as part of your request? (if content-type is not passed, a default value for the particular type is set and the model state would not be having errors...this bug has been fixed recently).
also, you could do the following:
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState)