I've seen this when a field gets its value from elsewhere e.g. a calculated field from some other field(s) and then something else comes along and tries to input something else. The field, being already bound to some other source, rejects other attempts.
Have a good look at your control sources for all of the objects (fields) on the subform. Check your code, if you have any, for references to the fields on the subform that are sourced elsewhere. Check Macros , and even other related forms, for the same thing.
I believe this will be the problem.
HTH
Dave E