В принципе, можно будет попробовать сделать обработку события создания помещения в модели - если у нового помещения уже заполнен ID (т.е. новое помещение получилось за счет копирования), и в модели уже есть помещение с таким ID, то менять ID у нового помещения
Тут есть обратная сторона медали - если пользователь, условно в однушке, добавит пару новых комнат, то эти новые комнаты уже не будут принадлежать той же квартире. Как минимум пересобирать "по выбранным помещениям". То есть решение-то будет, но надо не забыть это сделать. Может отслеживать сразу по двум событиям - "создание" и "уровень"? Тогда останется только вопрос с двухуровневыми квартирами, но там пересборка при добавлении новых комнат на втором уровне будет очевиднее, чем в одноуровневых квартирах.