Насколько я понимаю, идея домена не предполагает знания обо всех объектах, в него входящих. Это механизм персистентности (сохранения на диск того, что должно сохраниться), а не динамического оповещения, в котором может витать куча временного мусора, тот же буфер Undo. Для обхода актуального состояния дерева модель должна предоставлять собственные средства - Reader.ReadView. Далее по всем прочитанным вьюхам рассылайте сообщения и вообще что хотите с ними делайте.

Да, неизвестные заранее типы контейнеров так не обойдёшь. Тут можно ввести дополнительный уровень абстракции (Reader, от которого будет унаследован TextModels.Reader). Не знаю, надо ли.