If I'm asked, I'd just suggest we remove the culture group system and use something more versatile, like a distance.
Instead, we introduce a concept of "distance" between any two cultures. Say the distance between Castile and Portuguese is 2, while the distance between Castile and French is 6.
Then we introduce the following rules:
1. At any time, if (the distance between A and B) + (the distance between B and C) < (the distance between A and C), the distance between A and C should be updated to not violate triangular inequality.
2. For any pair of cultures that do not have a pre-designated distance, they automatically get a maximum value, say 12. Of course if this maximum value violates Rule 1, it will be immediately adjusted.
With the above rules, for example, if we do not pre-designate the distance between French and Portuguese , it will automatically get a 8 (=2+6).
Then we can use distance instead of culture groups. As a bonus it's more fine-grained, both in value and the web of kinship it's able to represent. With this system, both linguistic relationship (Hungarian-Finn, if you want this you can give it a 10 or 11 to represent these cultures are slightly closer than two completely distant cultures) and geographical relationship (Hungarian-Romanian) can be treated. Multi-level culture groups can also be represented well.
Certain events can also manipulate these distances a bit. For example, Manchu can now start with a culture very different from Chinese, but when it forms Qing it brings Manchu closer to various Chinese cultures. The rule 1 will in turn bring Manchu slightly closer to almost all Eastern Asian cultures, laying ground stones for QIng's dominance.