I'm not quite sure of the exact problem here, since you mention "sides" and "tops" in the same sentence. Are you making a tile-based ground and your character keeps bouncing on the seams? Or are you making "platform" things that you can jump through, but
at the same time you want to be able to walk on it?
If it's the first one, one possible solution is to create an edge collider that goes along the top of the surfaces. If you need to deform the ground, just recalculate the part you're modifying. This should also work if you have jagginess when falling while
hugging a wall.
If it's the second problem, I've used this simple line of code (registered as OnCollision delegate):
bool body_OnCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
if (fixtureB.Body.Position.Y < body.Position.Y - 0.4f) return true;
As you can see, it checks if the player's altitude is lower than the platforms altitude, and if so, the collision is dismissed. The 0.4f is just an arbitrary value, you can change it to suit your own scale.