Arduino accepting only alternate characters
You wrote:

Serial.write(mySerial.read());
rc = mySerial.read();


Here you are calling mySerial.read() twice, and thus reading two
characters from the port's input buffer. You then forward the first
character through Serial, and process the second one. Note that you
should normally not read two characters unless you have tested that
mySerial.available() &gt;= 2.

You probably want to forward and process one character at a time, thus
only call mySerial.read() once within this loop:

rc = mySerial.read();  // read from mySerial
Serial.write(rc);      // forward through Serial
// now process rc