Sure it doesn't work this way, you're freezing your Arduino for 2.5 seconds which is an incredibly long time in network regards. Take a look at the BlinkWithoutDelay example to find out how you can have timed events in the loop without using delay().
// if(strLength > 1){
// if(textLength < (X_MAX +1)){
// fixedText(text);
// delay(displayTime);
// disp.clear();
// disp.syncDisplays();
// delay(gapTime);
// }else{
// scrollText(text);
// delay(gapTime);
// }
// }
// nextLine();