I think the power of the timers really shine when doing things like: tracking DOTS/HOTS across multiple targets, tracking the duration of a CCs like sheeps/saps, tracking immobilization stuff like frost novas. In all those cases, you'll probably switch targets after applying the effect. I'm guessing the dot/buff timer, etc. do not remain after switching a target is also b/c new API just gives information for effect linked to certain unit types. If so, I wanted to suggest the following:
Perhaps, whenever the user switches targets, you can create replacement candybar timers for the effect on the target you just had. These timers could be shifted up to a list of bars right above the current ones, with the name of the mob it was applied to right next to it (ala DoTimers). The bottom of the block of timers would always be the current target's timers.
When the user switches to a target, you could also compare the name of the new target and the durations of the new targets buffs/dots with the values of the faux timers you made when the user switched from previous targets. If the name of the unit and one of the timers matches closely enough, you could consolidate the two groups of timers, i.e. delete the faux timers for that unit.
I wouldn't even worry about doing some of the fancy things that CEnemyCastBars of DoTimers do to monitor effects that randomly break expire early or become subject to diminishing returns. If you ignore that aspect, this solution could be pretty seamless and maintain the simplicity of your current scheme.
any dot timer does all that, why does a castbar need to do it?