strstr function strange behaviour in PIC18F
Maybe this is the problem:

Rx[k] = ReadUSART();   //read byte and save it in Rx
k++;                   //increment k

if(Rx[k]=='\r')        //if carriage return is received, stop reading


By the time you get to the if statement, you have already incremented k, so you are not checking the character you just read, but whatever rubbish is in the buffer from the last time.