Dunno if you ever figured this out, but here are some solutions:
First, you could just write two rules, one asking for masculinum when target is filho, and another for femininum when target is filha. Assuming words are tagged Masc or Fem:
SETPARENT ("filho" @N<PRED) (1 ("de")) TO (*-1 (@SUBJ> PROP Masc) BARRIER CLB-ORD) ;
SETPARENT ("filha" @N<PRED) (1 ("de")) TO (*-1 (@SUBJ> PROP Fem) BARRIER CLB-ORD) ;
Second, you could use top-level set unification and group all masc/fem tags into sets and ask that they agree:
LIST Mascs = "filho" Masc ;
LIST Fems = filha"" Fem ;
SET Genders = Mascs OR Fems ;
SETPARENT &&Gender (@N<PRED) (1 ("de")) TO (*-1 &&Gender + (@SUBJ> PROP) BARRIER CLB-ORD) ;
See
https://visl.sdu.dk/cg3/chunked/sets.html#set-unification-set for documentation.
-- Tino Didriksen