Buenas.
Respondo por partes.
1) No, está bien que el contador cuente hasta 12. Te adjunto un diagrama de tiempos para entender mejor por qué. Hay que tener bien presente cómo funcionan las transferencias; cuando estás recibiendo el primer dato tienes la transferencia cont<--1, pero cont vale 0 hasta el próximo flanco de reloj. Lo mismo sucede para el resto de los datos.
2) De la mano con lo anterior, alarma estaría copiando el "valor antiguo" de alarma_mem, ya que alarma_mem va a cambiar su valor recién con el siguiente flanco de reloj.
Saludos,
Juan Pedro.