Al tiempo de copiar el código, ví esta línea:
Código Delphi
[-]CDFacturas.MasterField := 'CLIENTE';
y me quedé con la duda si realmente hacía falta mi modificación del SQL detalle.
Es obvio que el ClientDataset usa ese campo para la relación Maestro-detalle.
También puede ocurrir que una modificación en el Inspector de objetos, modifique otra propiedad sin darnos cuenta, de ahí que en diseño funcione y en ejecución no.
Yo no he usado ClientDataset en Maestro-detalle, siempre las he usado con puros querys y grids.
Por probar no pierdes nada, si no funciona, esperemos que alguien aporte más información.
Saludos