Section 9.3.2 (#DITPGR)) explains that gramGrp "can contain any of the morphological elements defined in section 9.3.1 Information on Written and Spoken Forms for form and can appear as a child of entry, form, sense, cit, or any other element containing content about which there is grammatical information." Indeed, <gramGrp> is allowed as a child of <cit>. However, I've just discovered that some though not all of the children of <gramGrp> are allowed as children of <cit>. Specifically, <gen> and <pos> are allowed as children of <cit>, but <gram> is not.
I see two ways to resolve this:
a) <gram> would be allowed as a child of <cit> (that is, all members of model.gramPart would be allowed as children of <cit>). This would make <cit> have a similar content model to <form>. Note, however, that we recently deprecated use of <gram>, <gen>, etc. as children of <form>, instead recommending that they be children of <gramGrp>. See prose in section 9.3.1. (#DITPFO).
b) <gen> and <pos> would be removed from <cit> so that users would need to nest these elements inside <gramGrp> in order to use them inside of <cit>. The <cit> element would then become like <entry> and <sense>.
I recommend (b) since it corresponds to the deprecation decision. However, it also means breaking backwards compatibility. Perhaps a user community survey is warranted?