Al final he solucionado el problema. Era problema con los indices.
En el formulario problemático, en el FormClose, he puesto:
dmdatos.msqAlbaranes.IndexFieldNames:='';
y adios error
.
Todo esto porque al hacer click en una columna del DBGrig ordeno por el campo en cuestion (asignando a la propiedad el campo de ordenacion).
4 dias por una cagadita como esta.
Bueno muchas gracias a todos por todo y un saludo.