¡Hola!
Como seudo código está muy bien.
Tu nueva clase no debe llamarse
TCustomClientDataSet, ese nombre pertenece a la clase padre de TClientDataSet. Debes nombrarla de otra manera.
Ese código te dará problemas al compilar porque FParentDataset es un campo privado, pero no te preocupes, puedes acceder al mismo objeto mediante la propiedad DataSetField.DataSet.
Comienza a construir tu clase, compila e infórmanos de tus avances.
Saludos.
Al González.