MVVM особенно хорошо подходит для этого - по моему опыту, гораздо лучше, чем предыдущие варианты пользовательского интерфейса.
"Хитрость" заключается в том, чтобы разбить ваше приложение на составные части.Вместо того, чтобы иметь одну, единственную, огромную Model / ViewModel, имейте много меньших ViewModel, каждый из которых отвечает за одну часть программы.Вы бы использовали ту же базовую структуру, чтобы разбить представление, помня, что вы всегда можете вложить представление в другое представление, если используете UserControls.
Это позволяет назначать отдельные представления или модели представления отдельным разработчикам., почти без перекрытия.
Кажется, что ваши классы ViewModel и Model слишком сложны.