Я бы сказал, что у вас иерархия в неправильном порядке. Customer должен быть базовым классом, а затем Business и Person должны быть реализациями класса Customer. Я уверен, что есть больше атрибутов Customer, которые являются общими для всех типов Customer, кроме атрибутов в интерфейсе CustomerRoles.
Я бы подумал, что будут такие вещи, как CustomerCode и т. Д. Также вы можете заявить, что у всех клиентов есть свойство Name, и каждый получатель может получить соответствующее значение для каждого получателя. Как и в Business, у него было бы одно свойство с именем Name, тогда как у человека было бы каждое из FirstName, MiddleName, Surname, а также свойство Name, которое каким-то образом объединял бы их.