Prism - очень полезная библиотека шаблонов для того, что вы пытаетесь сделать.
Я советую вам посмотреть здесь http://compositewpf.codeplex.com/, вы можете найти много ответов для архитектуры Prism и MVVM. Вы можете определить сколько угодно модулей, но если представления похожи на отображение и изменение списка, лучший способ - определить, что меняется от одного представления к другому. Например, привязка или свойства или имена меток, а также генерация этих разных представлений из шаблона T4 (или даже если вы хотите переопределить их все один за другим). Это будет один и тот же модуль, но с другой привязкой, например.
Если вы хотите обмениваться информацией между несколькими моделями представления (независимо от того, в каком регионе / модуле они находятся), вы можете реализовать общую службу, которая хранит одну коллекцию List, и внедрить эту службу в каждую модель представления. Затем заставьте каждую модель представления обращаться к данным в коллекции через службу, чтобы при выполнении операции CRUD над коллекцией изменения отражались во всех моделях представления, а затем вы могли передавать все свои представления.
Если вы собираетесь использовать этот общий сервис и экспортировать его как не общий экспорт, один и тот же экземпляр вашего ObjectRepository будет совместно использоваться всеми вашими моделями представления. При обновлении свойства List в вашем сервисе вы можете заставить его использовать все модели представлений.
Если вы будете использовать Unity, используйте единственный экземпляр.
Подробнее о совместном обслуживании http://msdn.microsoft.com/en-us/library/ff921122%28v=PandP.40%29.aspx#sec7