That's because when you reach the edges of the screen, the blocks in the edit buffer (the blocks that you see) are copied to the world and the blocks which are on an other location are loaded. this makes the part of the world that you can see shift by 8 pixels, and to make sure the player won't be stuck in blocks, the player moves 8 blocks as well. This causes the bad scrolling.
I will probably once implement smooth scrolling, but I don't really know how to do that yet. I'm already glad the tilemap fully works and has collision checking and scrolling.
Since you all wanted it:
I hope you like it. It was hard to get it to work.