When you use ObserveField - make sure you are not telling it to observefield more than once. Remember to unobservefield if you need to tell it to observefield again or it will fire each time in succession incrementing.
in other words if you have a routine which sets observefield, each time that routine runs it sets up an extra callback to it. The second time it will execute the callback twice, the third time it will execute it three times - it gets real messy. So either set it a single time in Init, or if you are manually setting it be sure to unset it/unobservefield when it executes.
Without seeing the code involved I'm only guessing, but perhaps when the focus changes to the videoplayer you could unobserve the field that redraws the overlays, and when focus switches back to the rowlist observe the field again.