En un segundo vistazo he visto que tienes el fuse del Watchdog activado y eso te genera un reset cada x tiempo. No he utilizado nunca el 16F84 por lo que no sé que tiempo tendrá por defecto el Watchdog, pero si es superior a 1 segundo de seguro que por eso te fallan con tiempos largos, en realidad también está fallando en tiempos más cortos pero puede que por alguna paradoja del programa no se vea de una forma tan evidente hasta que subes los tiempos en el Waitms.
Define CONF_WORD = 0x3ff1 '_CP_OFF, _PWRTE_ON, _WDT_OFF, _XT_OSC
'Define CONF_WORD = 0x3ff5 '_CP_OFF, _PWRTE_ON, _WDT_ON, _XT_OSC