It depends on the speed of your crystal. Check out the datasheet for 16F877A, Chapter 10.1 Baud Rate Generator.
Since I'm in the mood, here's the table you'll find in the datasheet :
The first column is the Baud Rate you desire. Fosc is your clock speed (aka crystal/oscillator frequency). The second column is the actual (true) speed of the UART generate from the PIC at that Fosc.
Anything with error <3% is ok, and can tolerate up to 10-15 bytes before the UART start sending garbage value. Your program only send 2 byte at a time, should not be a problem. If it does, just change to higher baud rate.
Table 10.3 is where BRGH=0, and Table 10.4 is for BRGH=1. It is a register setting in PIC for normal speed (BRGH=0) and high speed (BRGH=1). BRGH=1 generate less error (take 57.6k for example)
You need to read up more on UART for PIC before you can actually implement it. Shahrul blog has a very good write-up.
I am not familiar with VB either. All I remember is I didn't have any hitch with baudrate = 125k via hyper-terminal. So PC hardware is not a problem, all you have to do is to figure out how to poll the value from serial port.