You should never do this:
Serial.println(String(takenKeybinds) + "/64 Keybinds taken.");
Yes, it should cope with it and append the strings, but that's really nasty even if it does work. And there is absolutely no call to ever do concatenation when printing to serial.
Instead just use:
Serial.println(F("/64 Keybinds taken."));...
You are not reading the GPS often enough. The method
Adafruit_GPS::read() is documented in the comments embedded in the
Read one character from the GPS device.
Call very frequently and multiple times per opportunity or the buffer
may overflow if there are frequent NMEA sentences. An 82 character
NMEA sentence 10 times per second will ...
First, you got some logic wrong in the receiver: you have a test for
Serial1.available()>=size_gyro and, when this is true, you read
size_gyro + 9 bytes. You should change the test in order to only start
reading when you actually have size_gyro+9 bytes available.
Then, note that command_name is transmitted twice: first as part of
the 9-byte preamble (...