Maybe you can solve your issue with the EventHandlers, that exist for Separation and Collision.
This one for example, fires on collision and allows you to accept or deny to collision by returning true or false.
In the EventHandler, you also have access to the contact.
public void LoadContent()
body.OnCollision += new OnCollisionEventHandler(body_OnCollision); //IntelliSense loves them
bool body_OnCollision(Fixture fixtureA, Fixture fixtureB, Dynamics.Contacts.Contact contact)