Bueno, al final investigando se resuelven las cosas, por lo menos a veces
El problema venia determinado porque cuando la función anterior creaba el fichero éste como máximo se creaba según el tamaño del campo BLOB SIZE, indicado en el BDE, en mi caso 1024. Pero si tenemos el query con la propiedad REQUEST LIVE = TRUE, se graba el fichero correctamente sin tener en cuenta la limitacion del BLOB SIZE indicado en el BDE. Al final, resultó ser que el programa de pruebas tenia activada esta propiedad, y el query del programa final no.
Bueno espero que me hayais entendido.
Y también espero que mi respuesta pueda ser de utilidad a otro usuario si se le presenta este problema.
Saludos y gracias a todos.