Le puse de 27pF como dice la hoja de datos del pic!!
Como calcularis tu el set_timer1 ???
El Timer del RTC NO DEBERÍA PRECARGARSE. Intento explicar el por qué:
Primero: Es mucho más sencillo contar de a dos segundos en la interrupción, y si necesitas mostrar los segundos, puedes leer el valor actual del timer y con una regla de 3 simple lograr obtener no sólo los segundos sino también las décimas y centécimas.
Tiempo transcurrido = minutos : segundos + TMR1 / 32768
Si aún así, estás si o si necesitando que la interrupción suceda cada un segundo, el datasheet da la manera recomendada de precargar al Timer1: seteando el bit 7 del registro TIMER1H. Esa es una de las pocas formas de pre-cargar el Timer sin adulterar la cuenta. Hacer una pre-carga del Timer completa (como el set_timer_1(valor)) genera que se pierda la posible cuenta actual de ticks acumulada durante la ISR. Recordemos que el Timer sigue contando aún dentro de la ISR, volviendo a acumular pulsos y escribir el valor del Timer completo puede generar que se pierda la cuenta precisa que lleva el Timer en ese momento. La forma segura es entonces: BSF TMR1H,7. Eso equivaldría a hacer: TMR1 = TMR1 OR 32768, lo que hace que desborde e interrumpa al cumplirse un segundo de tiempo transcurrido.
Siguiendo el datasheet, también menciona que para utilizar el Timer uno como RTC:
For this method to be accurate, Timer1 must operate in Asynchronous mode
Saludos.