I think what is happening is your modelling package is resetting all the pivots, so all limbs have a pivot of 0,0,0 - for the sake of compatibility.
Rhino3D does the same thing, and that means I can't load in a hierarchy animated model without the limbs going crazy. I tend to make the model in Rhino, UV map and texture, then weld, link, and animate in 3DS Max. When I import a .3DS from practically any package into 3DS Max, it's pivots are reset. So I select each limb and centre it's pivot, link the limbs in order, and then I end up with a working 3DS model, which is converted to .X using DBConv.
You need to work out a similar workflow I think - really I say cut out the middle man, and get CharacterFX - which is for bone animation but that's more common than hierarchy. The benefit of CharFX is that the limb pivots don't matter, you'd load in your .3DS and build a skeleton for it, assign vertices to the bones, and export that as .X. Only good for organic models.
For hierarchy keyframe animated models, well I haven't found a better solution than using 3DS Max - there aren't really that many modelling packages that work with hierarchy animation to the same extent. The problem with coding is that you still really need those limbs to have pivots set first - because if say, a barrel is glued to a turret which is glued to a tank body, then rotating the turret would not rotate the barrel - all rotations would be screwed. It might be fiddly to do a tank in CharFX, but probably no more time than you'd spend anyway. At least CharFX can export to .X which saves a lot of time.
I really think that CharFX would be invaluable, for 2D games as well as 3D, because you can do some neat tricks with a segmented plain.... like Krait! - those rocking skulls and hammers were all done with CharFX.

Health, Ammo, and bacon and eggs!
