Movement gets a bit complex and I won't be able to cover it all, but the scale I use is 1 meter per display unit. So if I set a sprite at position 1,1, they're 1 meter in and 1 meter down on the map. The sprite size I use is 2 by 2 square, meaning I can have characters up to 2 meters in height. I made a mistake when I told you my scale is 32x32, that's actually for my personal reference when making images, but in the engine, I use 1 meter per screen unit. I set the physics scale 1:1 with the display, and gravity I have set to -9.8.
My display aspect is 1:1 square, so I'll need to make adjustments later to make things display the way I want, but this is the setup I use for testing/development.
From there, I timed how long my character sprites take to reach terminal velocity (somewhere around 120mph) and set their friction so they could attain that speed in the required time (roughly 20 seconds). I know my physics are right because they match real-world expectations. Basically it looks right and my stopwatch says it's right.
As for jumps, I just apply a force on the sprite upwards, but only when his feet are on the ground. You can use a raycast from the middle of the sprite down to his feet, if you detect a sprite other than itself then you know you're on the ground.
Further, you only want to apply the force once, when the jump key is pressed, and then never again until the jump button is released.
When my sprites move left and right, I apply a force. When the characters stop moving left and right, a apply a force in the opposite direction with the same amount of force the character is currently moving minus 1/4. This allows the character to stop very quickly.
To give a character a speed limit, I just choose a top-speed and apply the same kind of forces to keep him going at that same top-speed. (His legs can only move so fast, afterall)
You have to be careful with moving a character like this because it could end up being frame-rate dependent. On differeing frame rates it may take longer/shorter for a character to stop. I solve this by just making sure I apply forces on a consistent rate regardless of framerate.
You don't want to use friction to stop a character cuz that'll mess everything else up. Your characters have feet that are good at stopping, they are not rolling balls