Hola, acá reviviendo el hilo una vez más, aunque esta vez traigo algo de "aporte" al mismo, si usaras Firedac o quieres pasar de un TClientDataSet a otro... podrías hacer algo como...
Código Delphi
[-]ClientDataSetDestino.Data := ClientDataSetOrigen.Data;
O por ejemplo, también:
Código Delphi
[-]FireDacQuery1.Data := ClientDataSetOrigen.Data;
Es un método mucho más sencillo y eficiente.