Existe otra manera que quizás sea mas acorde a lo que quieres hacer, utilizar el método "SetProvider" del ClientDataSet:
Código Delphi
[-]
procedure SetProvider(Provider: TComponent);
La desventaja de usar este método es que tendrás que invocarlo cada vez que abras el ClientDataSet. Por lo que mejor sería asignarlo en el método que se ejecuta antes de abrir tu componente:
Código Delphi
[-]
procedure TSCEClientDataSet.DoBeforeOpen; override;
begin
SetProvider(FDatasetProvider);
inherited;
end;
Saludos!