Xbees Arduino Communication Freeze

  delay(100);

It is stupid to delay on the receiver ends. STOP DOING THAT.

   // Reset communication read variables
   for (index = 0; index <6; index++){
   msg[index] = '\0';
   msg2[index] = '\0';
   }

You clearly haven't a clue what NULL-terminated means. That is COMPLETELY unnecessary.