Sagen wir mal so: Wenn ich nur mit Gewalt das "as TObject" reindrücke scheint alles zu funktionieren.
Diese "Gewalt" würde ich vom Serialisierer aber gar nicht erwarten. Ein Interface ist nun mal nur ein Pointer auf eine Schnittstelle und nicht auf eine Object-Instanz. Beim Deserialisieren müsste diese Instanz ja auch wieder erzeugt werden. Was würde dann aber passieren, wenn du mehrere Interface-Felder hast, die auf dieselbe Objektinstanz verweisen? Woher soll der Deserialisierer denn wissen, daß er dafür nur eine Instanz erzeugen darf?