Well, finding out if the model group type is fairly easy. Set up a GetChangeTypeParameter in your iUpdater.
Something like this:
elementId = new ElementId(BUILTINPARAMETER.ELEM_TYPE_PARAM)
Element.GetChangeTypeParameter(elementId)
You could add information to your model group when you create it, and react to that when the model group is changed.
Think storing the model group type uniqueId.
Exist model group type - get elements and geometry.
New model group type - get elements and geometry.
Compare, and react to the difference. Get the adjacent rooms via bounding box filteredelementcollector or something (I don't work with them - there are probably better ways). Modify the room / room contents.