I see the problem. You're changing the sprite in one iteration of yoor loop and moving using vx instead of px. Also, you're using wait between sprite changes. You should use vsync instead of wait and only at the end of the loop.
Also, you should use a proper game loop and def instead of goto (I don't know if you feel ok reading your code but goto and label seems messy)
I deleted a lot of your code, but what I wrote should work like you expect. SPANIM is a command you should look into. In your original program, you were using both SPSET and WAIT for each iteration where SPANIM combines the two. I also included animation for walking the opposite direction.