Does the controller ever halt with any kind of error message when it comes to a bad line of code or does it just keep on moving? Have you tried transmitting with a different PC?
One other thing which I have witnessed is bad characters in large gcode files. This seemed to be a Windows bug of some sort. Every line in your gcode file normally ends with inivisible machine characters representing Carriage Return and Line Feed. Inexplicably, Windows puts two Carriage return characters together at the end of some lines in the file. If you load the file into Notepad, and scan down through it, you can sometimes find two lines of gcode run together as if they were one long line. But this is difficult to detect this way, let alone fix.
I used a free hex editor to examine the gcode file.
Freeware Hex Editor XVI32
You can load your gcode file into the hex editor and use its search function to locate any instances of bad characters. Search for the bad combo using the terms:
0D 0D
If any of those characters are found as a pair in your file, those are bad lines. The legal combo is
0D 0A
So you can use the search and replace function in the hex editor to fix all instances of a bad combo in your file.
I have also seen Windows add the bad combo into the file when it is copied from one medium to another. This drove me nuts for a while with my Haas, because the file would check out ok on the hard drive, and then be bad on the floppy, so the actual file had to be inspected on the medium it was saved on before it was uploaded to the machine.
I never saw this error on smaller gcode files, but anything that was a meg or two large needed to be checked.