Serial.write stops working if not used?

I was about to say "get rid of the goto, but I see you are using them all over the place. Ach!

Change:

TRY_AGAIN:
readSensor();
if (Data_not_acquired){
goto TRY_AGAIN;
}

To:

do
  {
  readSensor();
  }
  while (!Data_not_acquired);

Ditto for other similar places.


This is wrong:

 if ((Serial1.available() > 0)) {
    c = Serial1.read();
    if ((c == 's')){
      c = Serial1.read();
      if ((c == 'n')){
        c = Serial1.read();
        if ((c == 'p')) {
          c = Serial1.read();

The line "if ((Serial1.available() > 0))" guarantees you have one byte. You are reading at least four. Your serial print elsewhere simply gives it more time to catch up. You need to rework that bit.