Comenzaria por ponerle los FUSES, que la simulacion no tienen en cuenta, pero que en fisico puede estar causandote el problema.
Otra cosa:
if(unidad>=4)
output_high(PIN_A2);
else
output_low(PIN_A2);
Eso tiene varios problemas:
04 14 24 34 , espero que se entienda, con 35 activaria, con 33 no.
No hay una histeresis, es decir con supongamos que ahora lo haces para que cuando este en 4º active, si pasa a 3.999º va a desactivarse, y luego volver a activarse. O un ruido puede cauar ese efecto.
Tambien No se le da tiempo al compresor luego de desactivado, por lo cual la presion va a estar alta y seguro que va a terminar funcionando la proteccion termica del compresor, mas veces de lo que deberia.
-------------------
Si vas a comparar temperatura, directamente comparalo con "lectura" y no con el valor del BCD resultante.