The problem may be that you are setting the cursor within a script and
expecting it to stay set until you change the setting at a later time.
The HyperCard system sets the cursor to the current tool at "idle". An
idle state is one in which no events have occurred, and you are not
operating inside a handler. For example, when you choose the browse tool,
the cursor is a hand, except when it is over unlocked fields, where it
appears as an insertion bar.
It may be that once you exit all scripts, Hypercard resets the cursor to
the hand.
If you wish to globally change the HyperCard "hand" cursor, such specific
editing functions as "set cursor" will not do the job, since "set cursor"
works only inside its called handler, creating the above situation.
Instead, using ResEdit, open the "FONT" and the "BAD FONT" resources. Find
the character with ASCII value 152. Modify this to change the hand cursor
in HyperCard.