quick test, remove all your timeout label, delay and such and redo the test.
if it's working, increase them.

case not... i'll prefer to use the internal USART.