It appears your interrupt routine is being triggered too fast, and any faster leaves no time left to execute the main code so the uC will appear unresponsive.
For a typical display, a refresh rate around 50Hz is suitable to trick the eye into thinking it is continuous.
Adjust your timer for a period of around 10ms (100Hz divided by two displays equals 50Hz update for each display) between interrupts (if it's only an 8-bit timer use the prescaler to divide the clock down some more, or if the divider doesn't go high enough then as Mike says in the comments use a count variable in the ISR and execute the event every n interrupts. Or use the 16-bit timer)