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.