Hmm, ok I'll try to answer but some of these things you will need to make some hard decisions on how you want to do each task, then do the code for each task.
1. I think so, receive all the data from the scanner and when you have it then send to PC.
2. Sure. Like I said at 20MHz xtal you get 520 PIC instructions per incoming BIT.
3. I can't help with the VB side, maybe someone else can help.
4. That's a good question. Basically these are initial design decisions. You need to decide what it is going to do, then break that into modules or tasks and make code for each module.
I can't make the decision for you, but a logical choice would be to have an array of memory large enough to hold the *longest* string you will ever get from the scanner. I'm assuming it's just a handful of bytes.
Then you would load all the incoming bytes into that string, byte after byte, and have another memory variable that keeps count of how many bytes are in the string.
Then when you have the whole string, send it to PC and wait for any confirmation back from the PC.
The more information you provide the easier people can help you, for instance you could have said how many bytes come from the scanner etc.