Pues si es complejo... a lo facil.
Deriva de TComponent que ya tienes los métodos Assign. Eso sí, deberás mirar como manipulas memoria dentro de tu objeto, pero en principio sería algo asi:
Código Delphi
[-]
type TMyClass = Class(Tcomponent)
end;
var o1, o2 : TMyClass;
begin
o1 := TMyClass.Create;
o1.propiedad := 'mio';
o2 := TMyClass.Create;
o2.Assign(o1);
end;
Si indagas por la VCL y la ayuda de Assign, creo que te puede hacer la vida más fácil.
Alguna vez, para guardar un objeto en disco con SaveToStream, simplemente cambié el TObject por TComponent y todo resuelto, aunque creo que para tí no será tan simple.
Saludos