Hola Oscar:
Algo muy importante, previo a tratar de buscar el origen de los errores, es intentar asegurarse de que se está haciendo una buena recolección de basura (garbage collect) en cada módulo, para lo cual ayuda mucho el manejo de errores con Try/Catch y limpieza local en Finally. Hacer o respetar esto primero, te permite ganar tiempo para no tener que buscar los problemas asociados a esto mismo.
Cuando tenés que encontrar los motivos de los errores, siempre tenés que contar con un buen sistema de control de errores y de LOG de los mismos, cosa que con esa información luego puedas encontrar las causas más rápido. Esto no es algo estático, porque a veces se te presenta un problema que requiere agregar información adicional al LOG, como ciertas variables locales o de entorno.
Te sugiero lo siguiente:
1) Comprobar que no hay virus en la red: Esto puede provocar funcionamiento anómalo o raro, pérdida de datos, etc
2) Generación de LOG extra mediante archivo bandera: Una forma de implementar esta técnica de LOG es que al arrancar el sistema (luego de setear los PATH o variables u objetos globales, pero antes de ejecutar más nada) verifiques la existencia de un archivo bandera (ej: log.txt) que, si existe, active la escritura de LOG al disco y comience logueando algunas variables locales y de sistema como sys(2023) para archivos temporales, y otras que creas útiles
3) Si se generan temporales que luego no se borran, puede ser que algo estés haciendo mal y falte hacer recolección de basura en uno o más sitios.
4) ¿Tu EXE contiene todo lo necesario, o hay módulos externos también? ¿Está todo en el mismo directorio? Comprobá que no haya ningún .FXP suelto en la PC del usuario. Eso causa problemas