Okay, so I ran this through my head a couple times and I think this is what is happening.
I am starting Timer A for Buff A and once its finished, it will set animation back to normal.
BUT if Timer B for Buff B starts before Time A ends, then in effect, it starting a second timer. Even though I am using the same Global variable, the timer will only use the value at the time I called it. NOT continually re-checking said variable.
That make sense?
What I think I need to do is; add some sort of event that registers when a new buff has been received and in turn, cancels the previous timer.