Вы не выставляете ни один из этих классов. Ваши клиенты никогда не создают их экземпляры (если вы не делитесь типами, это другая история).
Вы выставляете метаданные. Когда выполняется «Добавить ссылку на службу», она использует эти метаданные для создания клиентского класса, который выглядит как ваш серверный класс. Похоже, что он может сериализовать и десериализовать XML, представляющий класс на стороне сервера.
Если вы хотите, чтобы метаданные для подклассов были представлены, то вам нужно добавить атрибут [KnownType]
к операции для каждого подкласса:
[DataContract]
[KnownType(typeof(someSubClass))]
public class someClass{}
См. Известные типы .