Thanks for the suggestions, but the result I get is still not correct.

Have anyone tried to send an endless stream of bytes to PIC and then resend the stream back to PC? Will the input bytes same as the output bytes?