Выделить общую часть (необходимую для generic-обработки) в интерфейс, сгенерить классы как partial, добавить partial файлы с определением интерфейса для каждого из типов.
Ещё вариант — генерить и сам код обработки.
Например в виде extensions к типам. Тогда общая часть логики обработки будет в генераторе (без дублирования).