serial.write output GPS sentence formation and concatenation

  Serial.print(System_ID);
  Serial.println(NMEA2);
  Serial.println("");

Maybe the text that is generated by NMEA2=GPS.lastNMEA(); has a CR/LF at the start of the text?

It is not a good idea to use the String (capital S) class on an Arduino as it can cause memory corruption in the small memory on an Arduino. Just use cstrings - char arrays terminated with 0.

...R