В вашем WSDL нет ничего плохого.
WSDL зависит от схемы XML для описания формы данных. Схема XML не имеет понятия обобщения.
Когда .NET видит ваш запрос на создание WSDL и видит, что вы используете универсальный тип, он должен сгенерировать имя типа, которое он может использовать в схеме XML. Отсюда и возникает ErrorHandlerOfDatasetType.
При создании прокси-кода клиента проверяется схема XML в WSDL. Генератор кода увидит комплексный тип с именем ErrorHandlerOfDatasetType и, естественно, сгенерирует класс с именем ErrorHandlerOfDatasetType.
Теперь вы, похоже, пытаетесь привести этот прокси-класс к ErrorHandler, что явно не так. Если вы используете «веб-ссылку» (вы не сказали), то в вашем клиенте не должно быть никаких типов данных сервера. Веб-сервисы ASMX не созданы таким образом.
Если вы используете WCF (и вы должны это сделать), тогда вы можете установить диалоговое окно «Добавить ссылку на службу» для обмена типами между клиентом и службой. Если честно, я не думаю, что это поможет вам с обобщениями, потому что, как я уже сказал, информация, необходимая для того, чтобы знать, что ErrorHandlerOfDatasetType действительно означает, что ErrorHandler просто не существует.
Обратите внимание, что даже в WCF использование типа сервера создает зависимость от версии сборки сервера и часто является плохой идеей.