I guess you haven't solved the problem, you just introduced a new one. Thermal.write() puts out exactly one byte (character) while Thermal.println() writes the character and two more (carriage return and newline).
The next problem is that you're using SoftwareSerial with a not so low baud rate. If your printer is picky about serial timings it will get lots of errors because SoftwareSerial is not so exact in timings, especially if used in conjunction with the hardware serial (interrupts influence the timing).
Have you tried my proposed changes or are you just ignoring anything I write?