Took a quick look, make sure you are capturing the mouse on mouse down. None of your function overrides are properly returning a handled state. Also you should be using the events coming off the border, not the overrides for the user widget unless you want the whole surface of the user widget to respond to them. I think some parent widget is capturing the mouse because you’re not, and so you stop getting mouse events while it’s pressed.
You need to use the Handled node, followed by the Capture Mouse node off the handled node.
On mouse up make sure you do Handled->ReleaseMouseCapture