Disclaimer: I don't do PICs and mikroC, so take this with a hefty pinch of salt...But it would seem that the interrupt service routine
has to be void interrupt(void), while in your code it's
void interrupt_Timer0_ISR(): I fear your ISR is never used, hence the timer interrupt flag is never reset and the global interrupts never re-enabled.
If you want to use your own name, the
iv vector and
ics flag must be specified.
AFAICS, the PIC18F2550 limits the number of nested calls to 31 and the meaning of the Stack Overflow error is that the code is exceeding that number, causing an automatic reset.
Since there are no nested calls in your code, it's probably just the program going off its rails when trying to execute a non-existent ISR.