Que tal selarem,
Podrían estar pasando dos cosas:
1) La primera es que el cristal deje de funciona o que esté haciendo falso contacto hacia las terminales del DS1302
No mencionas si tienes el circuito armado sobre protoboard o en PCB.
2) La segunda razón sería que el bit 7 del registro de los segundos, por alguna razón (posible bug en el código o alguna otra causa) se coloca en 1. Ese bit llamado CLOCK FLAG HALT lo que hace es detener el oscilador del DS1302 y este necesita siempre estar en 0. Si esta es la razón, lo que yo te recomiendo para detectarla y resolverla es que cada vez que lees el registro que contiene los segundos verifiques is este bit está en "0", si es así, entonces el DS1302 está operando, pero si ese bit por cualquier motivo se hace "1", entonces cambialo a "0"; de lo contrario sigues con la lectura y muestra de la hora.
Sería bueno que colocaras el código (mencionando el compilador que estás usando en caso de usar C) y el esquemático de tu circuito, mencionando si lo has armado en protoboard o si está armado en un PCB (circuito impreso).
elreypic.