It looks like you are improperly clearing timer flags. Simultaneous timer capture or output compare events pose no problems for ECT and TIM timers. You should know that timer and not only timer but many other interrupt flags can't be cleared involving bset and sometimes bclr intructions. If you are using C and not assembler then you also should know how to do it properly from C:
1) Don't use bitfields when clearing flags. For example TFLG1_C1F=1; is wrong. It clears not only TC1 flag but also flags that were set before this C line.
TFLG_C1F=0; // <- this is also bad, It won't clear TC1 flag but will clear all other flags that are set.
2) TFLG1 |= 1; // this is wrong. This is same to TFLG1_C1F=1;
3) TFLG1 &= 1; // this is OK
4) TFLG1 = 1; // this is OK
Regards