As your incoming string is only 100 characters why not move to a more modern PIC like the 16F1827?, this allows you to allocate a continuous area of indexed GPR's which will easily hold your 100 character string.
Another obvious solution is to add handshaking, as RS232 is designed to do - as you're writing routines for both ends of the process then it makes it pretty easy.
Again, as you're in full control of both ends, you could set the VB end to send 16 bytes of data and then wait for acknowledgement from the PIC before sending the next set of bytes.
As you're in full control of both ends there are many options.