call SetUnitOwner(whichUnit, whichPlayer, changePlayerColor?)
Push previous owners on to a stack as well as timers. Whenever the spell is cast, increase stack and pause current timer. Start new timer.
As the spells expire, go through the stack until the stack is empty.