It may be going so fast it appears to slide. You can create a timer to slow down the action. With the TIMER() command 1000 equals 1 second.
` Set sync rate to max and turn it on
sync rate 0
sync on
` Create a box
ink rgb(0,100,0),0
box 0,0,53,53
` Grab the image
get image 1,0,0,53,53,1
` Set starting coordinates
PlayerX=260
PlayerY=208
` Create a timer
tim=timer()
do
` Clear the screen with black
cls 0
` Change color for grid drawing
ink rgb(100,100,100),0
` Show the player
sprite 1,PlayerX,PlayerY,1
` Show the grid 52x52
for y=0 to screen height() step 52
for x=0 to screen width() step 52
` Draw the lines of the grid
line x,y,x+52,y
line x,y,x,y+52
next x
next y
` Check if its time to allow the player to move
if timer()>tim+100 ` Allow player movement every 100 milliseconds
` Check for up arrow
if upkey() and PlayerY-52=>0
` Move player up
dec PlayerY,52
endif
` Check for down arrow
if downkey() and PlayerY+52<=screen height()
` Move player down
inc PlayerY,52
endif
` Check for left arrow
if leftkey() and PlayerX-52=>0
` Move player left
dec PlayerX,52
endif
` Check for right arrow
if rightkey() and PlayerX+52<=screen width()
` Move player right
inc PlayerX,52
endif
` Reset timer
tim=timer()
endif
` Show player coordinates
ink rgb(255,255,255),0
text 0,0,"PlayerX = "+str$(PlayerX)
text 0,20,"PlayerY = "+str$(PlayerY)
` Update screen
sync
loop
Also I noticed you were wanting to increase by 52.1. The variable xx is an integer that only holds whole numbers so it's best to only increase by 52.