Creo que el error lo tienes en que sólo incrementas como mucho la variable "horas" en dos unidades.
En la línea 10:
y en las líneas 14 ó 25,
dependiendo de por donde discurra el programa
Pero en esas líneas, la variable "horas" sólo se incrementa en una ud si la variable min>=60.
Pero...qué pasa si la variable min>=120? Eso son 2 horas, y tú sólo incrementas el valor de horas en una ud, sólamente con la condición de que min sea >= a 60.
Por otro lado, la verdad es que en mi opinión el método seguido es un poco lioso. Seguro que lo puedes mejorar un poco