Вопрос, который вам нужно задать себе: это хорошая идея, чтобы иметь только один класс, который применяется к двум различным веб-сервисам? Если у вас есть один класс, что произойдет, если одна из компаний изменит свой сервис. Вы должны не только изменить интерфейс к их ws, но и интерфейс второй компании.
Вы можете прийти к выводу, что вы хотели бы выделить как можно больше кода, но связывание двух веб-сервисов вместе, как это, может быть плохой идеей в долгосрочной перспективе. Интерфейсы могут разойтись со временем. Я думаю, что в этом случае допустимо дублировать код.
Вы, наверное, уже думали об этом, но я бы использовал шаблон адаптера. Таким образом, у вас будет три класса: универсальный класс (GenericErrorList), используемый повсюду в вашем коде; и два, которые генерируются из соответствующих wsdls (CompanyOneErrorList и CompanyTwoErrorList). Существует метод преобразования, который принимает CompanyOneErrorList и создает GenericErrorList. То же самое для другой компании.
Если у вас нет действительно веской причины связать две реализации вместе, я бы избегал этого.