Hello and thanks for all the replies! I've added a new function to calculate the gravity based on time instead of frame rates and it now appears to be working so thanks! Collision detection is not really a problem at the moment because it scans x pixels in the direction of movement for a wall, where x is the distance in pixels that the sprite will move that frame.

My problems now I think are to do with the way I am sending the data over the network but plan to deal with this by making a thread listen to any updates from the server instead of polling the server every n frames for an update which means that things still dont look right, but I'm pretty sure thanks to everybodys help here, my initial problem has been solved so thankyou so much!