while(Serial1.available()){ //clear the Paro data buffer
Serial1.read();
loop();
}
So for every character in the buffer, you throw away the first one and then try to process everything else in the buffer with loop(). That looks like a very bad idea as you can end up using up all your memory with nested copies of loop().
Here's your problem...
while(Serial1.available() && newParoData == false){
pc = Serial1.read();
You only process characters out of the Serial1 buffer when there isn't a completed data item. When there is, and you're waiting for the Honeywell, then it just fills up the buffer.
I would change this to discard the additional characters while newParaoData is true.