No discutiré tu método... aunque creo que podrias valerte del mismo delphi, que tiene varias opciones para aplicaciones de multiples capas (Corba, DCom, sockets), y con ClientDataSets.
Para enviar un componente cualquiera por un stream... habrá que ver de que clases hereda.
Si está heredado de TPersistent, ya cuenta con los métodos WriteToStrem/ReadFromStream, con lo que basta que crees un nuevo TMemoryStream y lo escribas en él.
Si no deriva de TPersistent... habria que tratar de entender la estructura (y funcionalidad) del objeto (nunca lo habia oido) para hacer un procedimiento que lo escriba a un stream.
Hasta luego.