Different ASCII Characters in RS 232
No, since it's an encoding standard, if set to ASCII the hex values should mostly be interpreted the same on any machine. The printable A-Z, a-z and numeric characters should be reliable, but as Chris notes in the comments there can be differences with other codes and the extended set.  

If you are getting different results between simulation and real life, then it's likely you have set things up incorrectly. Check your baud rates, stop/parity bits, handshaking, and also that the terminal program is actually set to ASCII (i.e. not displaying in hex/octal/binary)  

For reference here is an ASCII table.

EDIT - now you have added the code, I see another issue. You set the variable r = 'y', but then read the UART and store the result in this variable, overwriting it. This means the code will only send a y on the first loop. Use a separate variable to read into if yu don't want this to happen (or reset to y within the loop each time)  

Something like this:

void main(void)
{
    unsigned char r;
    unsigned char t;

    TRISB=0;
    // configure USART
    OpenUSART( USART_TX_INT_OFF  &amp;
         USART_RX_INT_OFF  &amp;
         USART_ASYNCH_MODE &amp;
         USART_EIGHT_BIT   &amp;
         USART_CONT_RX     &amp;
         USART_BRGH_HIGH,
         5 );
    t='y';
    while(1)
    {
        putcUSART(t);      // Changed variable to t to avoid overwriting on read    
        while (BusyUSART());            
        r=ReadUSART();         // Read into r
        PORTB=r;
    }
    CloseUSART();
}