Que tal mi estimado Roger,
Sería muy útil tener un esquemático de tu circuito, porque creo que ahí está el problema de poder mantener la hora y fecha. Lo que puede star pasando es, que al momento que quitas la alimentación al PIC se podría estar generando rebotes y en la realidad se refleja que también enciendes y apagas el TIMEKEEPER. Este circuito tiene una donfiguración de hardware muy parecida al antigüo y desaparecedo DS1202 (que ahora es sustituído por el DS1302). Peor bueno, para resolver el problema, lo que tienes que hacer es colocar dos diodos de germanio en él pin de alimentación. Esto es, los catodos de ambos diodos conéctalos al pin de VDD (pin

del HT13080, en uno de los ánodos conecta una batería de litio de 3V en el otro ánodo coloca la alimentación principal de 5V que estás usando para tu circuito, esto hará que al momento que tú desenergices o apagues la fuente principal de 5V, el HT1380, esté alimentado por la batería de litio y así si existen rebotes en la fuente principal no tengamos el problema de datos perdidos en el TIMEKEEPER.
Para el segundo problema, asegúrate que el bit 7 del registro de segundos, esté en 0, para asegurar el oscilador está habilitado. Esto te podria estar sucediendo, ya que en ese registro está el segundero del TIMEKEEPER además asegúrate qeu no envíes en forma accidental el comando de mode de prueba, ya que este te provocará funcionamientos no deseados.
Espero esto te sirva, para resolver tu problema.
Ahora que si no quieres sufrir tanto, yo te recomiendo mejor que cambies el HT1380 por un DS1302, que tiene mejores características y que además te vas a ahorrar los diodos de germanio, ya que este ya cuenta con los pines para VDD (+5Vdc) y el pin para conectar la batería de litio.