So for each "collision box", you have a body right?
Anyway, for your problem you have two approaches (maybe more, but two come to my mind right now).
You should have only one body, and each collision box should be a geom attached to this body. This way, the position of the collision boxes will update automatically depending on the body's position. When you create a new geom, you attach it to a body, and
also you can set an offset (take a look at the geom constructor), this way you could create 4 different geoms for each of the 4 sides of your character.
You can check which side of your enemy has been collided by checking the normals. For this you have to register an OnCollision method for the geom you want to check the side it has been hit, in your load method (after you create your geom) add this:
GeomSensor.OnCollision += OnCollision;
Then, somewhere in your code add the method OnCollision:
Hope this helps :)
private bool OnCollision(Geom enemyGeom, Geom hitGeom, ContactList contactList)
foreach( var contact in contactList )
Vector2 normal = contact.Normal; // Here are the normals