You might have lost the setting bit (not a parameter) for punching in ISO tape code. Your Fanuc might be punching EIA tape code, and your software might be code-converting to ASCII automatically. This is just a hunch.
Run the address LED to the "SET" position, and look for a bit under the "ISO" silk-screened onto your display panel. It should be a "1". If it's not, select MDI mode, enter a "1" in that position and press INPUT.
There is no parameter I know of for transmitting the "%". Technically, you don't need a "%" at the beginning of the file when reading a program back into memory. You only need a Line-Feed (LF), or a blank line. Putting a "%" on a separate line at the beginning works because of the LF after the "%". The LF cancels the "LSK" or "Label Skip" function and lets the Fanuc begin to read data. The percent sign is needed at the end of the file.
There is a paramter to enable Label Skip when reading (parameter 03, bit 1 -second from right) There is also a parameter for the tape punch option (parameter 01, bit 4 (the 5th bit from the right). Those are the only two I know of for the punch function.