No entiendo esto
if (Xbee.available()>21){
Data=Xbee.read();
if (Data=='A'){
digitalWrite(LED_BUILTIN, HIGH);
Router();
delay(150);
Dato_Xbee();
}
Entiendo que esperas 'A' pero al hacerlo envias Router() y luego vuelves a leer el puerto? Raro. Lo veo algo desordenado.
La lectura de datos debe ser unica, me refiero a concentrar las posibles llegadas de datos que tengan un comando inicial como 'A' por ejemplo y todo lo que llegue a continuación pero en tu caso tiense 'A' y luego tienes 0x7E.