Liberia RCSwitch y control de errores

Hola,
Estoy haciendo un emisor receptor de RF con la librería RCSwitch. El manejo de la librería más o menos lo controlo, pero tengo problemas de recepción que no se muy bien como solucionar. He buscado y no he encontrado mucho donde apoyarme.

El caso es que el sketch prepara la librería RCSwitch para recibir los códigos de varios mandos a distancia de 433Hz y cada uno tiene su código de identificación, luego según el estado, los registra para guardarlos o los compara con los almacenado para obrar en consecuencia (activar, desactivar, encender luces, mandar mensaje, etc).

Los datos recibidos son del tipo (24 bits):
"XXXXXXXXXXXXXXXXXXXXBBBB"
Donde los 20 primeros bits son el código de identificación del mando o sensor y los otros cuatro el Id del botón pulsado (fijos cuando es un sensor).

Cuando se pulsa un botón del mando, supuestamente, este envía 3 veces el código, y digo supuestamente porque hay veces, aunque son pocas, lo envía 2 veces y otras 4 (y hasta 5 veces).
Suponiendo que son 3 veces el envío lo que si ocurre con relativa frecuencia es que los códigos se leen mal, aunque siempre hay uno correcto, por ejemplo, se pulsa un botón y se reciben los códigos así:
"XXXXXXXXXXXXXXXXXXCCBBBB"
"XXXXXXXXXXXXXXXXXXXABBBB"
"XXXXXXXXXXXXXXXXXXXXBBBB"
Es decir que el último es correcto y los otros 2 no.

Si toca la parte del sketch que recibe y compara con los guardados, el problema es menor ya que si no coinciden ninguno, se puede poner un zumbido para indicar la lectura incorrecta. El problema viene cuando se está registrando uno nuevo, ya que, si lee mal, el código grabado es erróneo.
El problema se agrava cuando el que envía el código no es un mando (en el que puedes repetir la operación hasta que el sketch de el OK) sino que es un sensor (usa el mismo formato que el mando, sólo que el código es fijo en los 24bits) que manda sólo el código 3 veces, si falla la lectura el sketch se pierde el salto del sensor y eso si es más grave.

Lógicamente la solución es colocar un chequeo de errores, pero le he dado mil vueltas y probablemente la solución sea trivial, pero no la veo.

Por todas las pruebas que he hecho (la verdad es que sin mucha precisón con unas 200 pruebas)
Envío de 1 sólo código: Muy infrecuente (en 5 ocasiones)
Código erróneo: Infrecuente
Código correcto: Frecuente
Envío de 2 códigos: infrecuente
Ambos correctos: Frecuente
Ambos erróneos: No se dio ningun caso
Uno correcto y otro no: Frecuente
Envío de 3 códigos: Frecuente
Uno correcto y 2 incorrectos: Infrecuente---Orden aleatorio de los códigos: Frecuente
Dos correctos y uno incorrecto: Frecuente---Orden aleatorio de los códigos: Frecuente
Los 3 correctos: Frecuente
Los 3 incorrecto: Sólo una vez de los cientos de pruebas que hice
Envío de 4 códigos: Infrecuente
En las pruebas se han dado todas las posibilidades con los 4 códigos*
Envío de 5 códigos: Muy infrecuente
En las pruebas se han dado todas las posibilidades con los 4 códigos*
* Es decir que el/los correctos pueden aparece en cualquier posición de las lecturas.

Teniendo en cuenta esta información lo único que puedo asegurar es que al menos uno de los códigos es el correcto.

El más estable en los envíos, lógicamente es el sensor, ya que con el mando se puede pulsar más o menos tiempo el botón, lo que me he dado cuenta que algunas veces (no todas) afecta al número de códigos enviados.

Empecé en centrarme solo en los eventos de 3 envíos, pero había muchas posibilidades de perder el código correcto tanto en el mando (tolerable) o en el sensor (intolerable).
Tengo que decir que la centralita de la alarma de donde me dieron estos mandos y un sensor de puertas que le sobraba, se pueden registrar perfectamente sin errores y las pruebas de salto/registro del sensor, 100% de efectividad.

¿Estoy enfocando mal el tema? En caso afirmativo ¿alguna idea para seguir?
He probado con 3 receptores diferentes (procedentes de 3 kits emisor receptor y con todos me pasa lo mismo, por lo que descarto que sea cosa del receptor ¿puede que sean errores de la librería?

Perdón por el peñazo con el problema y gracias a todos por adelantado.

Editado para añadir el enlace a la librería RCswitch.