Un potencial problema que veo es que vas recorriendo archivos en un bucle y los que cumplan ciertas condiciones los cargas en el TXML.Text. Esto hará que cada uno vaya machacando al anterior y al final en el .Text quede el último. Y no se notaría si ejecutas paso a paso y dejas de dar pasos antes de haber completado todas las iteraciones del bucle. Si el problema es este, se resolberia poniendo un "break;" detrás de la sentencia que asigna el TXML.Text.
Si no es eso, y sigues con el problema de que tienes un programa que paso a paso funciona, pero ejecutado de glope no funciona, entonces hay que recurrir a la técnica de "instrumentar" el código, salpicándolo de sentencias de Logging que vayan registrando en algún sitio lo que hace el programa, y luego examinar ese registro a ver lo que ha hecho o dejado de hacer, y según lo que veas ir refinando el logging hasta que sea capaz de aislar el problema. Esto desde luego es mucho más pesado de hacer que seguir la ejecución paso a paso con el debugger, pero cuando se presenta alguno de los raros problemas que no se pueden reproducir paso a paso, puede ser la solución que te permita salir adelante.