1 When I change direction sometime it jump I try to replicate it and find it cause.But I can't. Maybe it is relate with my maximum horizontal force 100
1) I'd probably need more information/a reproducing example to figure out the jumping. If it's actually a character jump, could there be something somewhere incorrectly updating the character's TryJump status?
2) It looks like the maximum horizontal force is 1, not 100. With a mass of 1, then acceleration would be 1 unit per second per second- pretty slow for that size character.
It may be related to ghost collisions, though those tend to be pretty darn rare with a speculative margin of 0.1. You could try reducing the speculative margin further to a small nonzero value (0.01 or something) to see if it becomes rarer. The speculative margin of a pair of objects is the larger of the two collidable's margin, though, so you'd have to adjust both the character and whatever it's colliding with. Be careful about going too small- it might hurt collision detection quality. You may want to only modify the margin of the character and static objects, leaving other dynamics with a more generous margin.
If a smaller margin does seem to help, you could try using a continuous collision detection mode on the character to help avoid penetration. When creating the body for the character, you can expand the collidable description:
Just to check, the Simulation.TimeStep is being called with a constant time, right? If significantly varying values are provided from frame to frame, it could cause instability.
The dt value passed Simulation.Timestep should ideally be a constant value. Using the elapsed time directly is pretty much guaranteed to cause nasty stability problems. It's fine to use a variable step for other logic if desired, but simulation timesteps should only be dispatched with a well-controlled timestep. That generally means accumulating elapsed time and consuming it by dispatching updates of fixed length.