Serial.read: interrupted string

It may be this:

        delay(10);    // Delay waiting for answer

        while (Serial2.available()) {
          character = Serial2.read();
          SensorIn.concat(character);
          }

You are in that loop only while characters are available. Maybe the last few have not arrived when you emptied the rx buffer. If there is a cr/lf on each response, I would wait for that. Or put the delay(10) inside the "while(Serial2.available())" loop.