Yeah, menus can be a pain, especially when you forget an option and have to nudge everything around. I tend to use a for.next loop and compare each option with the current option, then change the diffuse colour of that sprite while drawing it, or paste another sprite on top, a glow or something like that.
I also like to draw each option in turn in a loop, because that way it's real simple to check the mouse pointer, and you would probably have the options Y coordinate anyway.
Untested, but my menus tend to go a bit like this, assuming that images 100-105 are menu options:
do
mx=mousex()
my=mousey()
lastmb=mb
mb=mouseclick()
sel=-1
menu_y=100
for m=0 to 5
if image exist(m+100)=1
sprite m+100,100,menu_y,m+100
set sprite diffuse m+100,255,255,255
if my>menu_y and my<(menu_y+64)
if mb=1 and lastmb=0 then sel=m
set sprite diffuse m+100,255,128,128
endif
if sel=m then set sprite diffuse m+100,255,0,0
inc menu_y,80
endif
next m
if sel>-1 and mb=1 and lastmb=0
`This is where you'd check SEL for the menu option handling
endif
sync
loop
Tricky to know if that would all work, but the idea is that the sprite is positioned then the diffuse colour reset (so it's as it is), if the mouse is over it, then it should go pinkish, if you select the option it should be red. Hope that helps anyway.