Sorry have amnezia, forgot that it's I create controll and know its all lines :(
I try use your control (and verry appreciative for it) and show you my experience and problems to make it better. In points I can help - I try. This problem tottaly insede control and to fix it - need know controll verry well.
I think problem in double you use for position calculation. Same as float it have not absolute precision.
Decimal have biger precision and maybe it will help if you replace double by decimal in position calculation, store.
Double precision - 15 - 16 digits
Decimal precision - 28 - 29 digits