Any one of the SerIn functions can catch data very quickly, even at 19,200 and much higher. It mostly depends on how much time you actually need to process that data once received. Like I said, re-read thru your code, figure out what you really NEED vs. what you want to do. Write down a 'quick-n-dirty' flowchart of how you want/need things to work.
What are you buffering the serial port for?
Is this a FIFO or a LIFO type buffer (probably FIFO type)?
What is the main function of the program going to be? What is this program going to do for you?
Bookmarks