You're taking the absolute value of the change in position for X and Y
CurrPosition.X = Math.Abs(CurrPosition.X - startPoint.X);
CurrPosition.Y = Math.Abs(CurrPosition.Y - startPoint.Y);
Forget about the Y direction for a minute and think about just moving the mouse to the left by one pixel. What do you think the value of (CurrPosition.X - startPoint.X) will be in this instance? Then think about what value you are adding to the X position of the element. Let me know how you go.