WiFly.read() and buffer overflows

Is there some way I can handle the returned data fast enough to prevent this?

Sure. Stop trying to print the data as you read it.

DO I need to build some delay into the loop to prevent dropping out of the loop prematurely?

You need to do the exact opposite. Get rid of the delay that you have (the print to the serial port).