Muchas gracias por responder. Lo que pasa es que he intentado muchas cosas ya y entre eso pues intenté hacer algunas cosas varias veces. La razón de cerrar los archivos es que esos se abren al inicio del programa, y yo pensando que podrían crear algun problema los cerré y los volví a abrir en esa función. Sobre el goto, pienso cambiarlo por algunas condicionales y mejorar el código, pero están mientras ahí en lo que el programa logra funcionar, en esa única parte me he quedado varado. El código completo es este (a lo mejor ya se entiende un poco más el porqué de algunas cosas):
http://pastebin.com/Zhz76KRc
Saludos y gracias