I did a little more investigating and found a way to get the mouse handlers to work: mvevt := MouseMoveEvent new setType: #mouseMove startPoint: ActiveHand position endPoint: 100@100 trail: nil buttons: 0 hand: ActiveHand stamp: TimeStamp current. ActiveHand handleEvent: mvevt.
evt := MouseButtonEvent new setType: #mouseDown position: 50@50 which: MouseEvent redButton buttons: MouseEvent redButton hand: ActiveHand stamp: TimeStamp current. ActiveHand handleEvent: evt.
The mouse move is necessary or the grabbed morph flies to wherever the hand is, but even with this, if you touch the mouse after it's grabbed, it flies there anyway.