Yeah as mentioned by @ZeroIQ_Scripter there are a lot of weird problems. One is using click detectors in order to use its MouseHover events in order to change the mouse. Great idea in theory but sadly click detectors only work on 3d objects:
when parented to
BasePart
,Model
orFolder
objects
From the click detector documentation.
Now onto the problem, for GUI Buttons sadly the only solution I could find is to do this weird workaround by creating an image label and having it replace the mouse like in the post below manually using the mouse enter and mouse left events:
Quite odd but hope this helps.