Даже если ваш сложный класс объявляет свойство как объект типа, когда ему что-то назначается, сериализация видит свойство как объект назначенного типа.
Например, если вы присваиваете свойству объекта aЗначение нового CustomClass (), сериализация будет ожидать объекта (), но найти CustomClass (), поэтому сериализация не удастся.(Тип CustomClasss не ожидался)
Если назначить свойству объекта значение нового объекта (), я подозреваю, что сериализация будет работать.