А в чем разница? Или куча отдельных классов для отдельных окон, такое же количество отдельных UserControl + один класс на одно общее модальное окно. Плюс в конструкторе этого окна будут загромождения в виде создания UserControl`ов в зависимости от передаваемых данных или параметров, или куча конструкторов, все просто когда окон штук 5, а когда их 20-30, то потом запутаться будет легко, а отдельные окна, с вменяемыми названиями (например ДействиеИмяСущностиОкно - AddCustomerWindow, EditProductWindow и тд, без перепутываний типа CustomerAddWindow и EditProductWindow), будет в дальнейшем проще сопровождать. При необходимости можно создать класс строитель, с отдельными методами для создания окон, сущностей и необходимых параметров.