Te recomiendo usar componentes TClientDataSet, por la facilidad que tienen para manejar los datos en memoria (que sería el caso de los detalle). Otros componentes también te permiten hacer este tipo de "caché", pero, en mi opinión, el mejor de los nativos en estos menesteres de manejar registros en memoria y aplicar cambios en lote al servidor es TClientDataSet (aunque para mi gusto le hace falta algunas características a este buen componente).
Combinando TClientDataSet con dbExpress y TDataSetProvider, podrás implementar la solución que planteas.
Sobre lo de sugerirte
frameworks, ORMs, etc., contáctame en privado. En mi empresa tenemos algunas cosas de esa índole que pueden interesarte.
Saludos.
Al González.