if looping in parsing string data

            delay(5);  //delay to allow buffer to fill

What a load of crap. This is absolutely, positively, the wrong way to handle serial data. Learn to use end of packet markers.