I don't really know what techniques specifically stamp out that bounding box shift behaviour, but this is what has worked on a wide variety of bugs:
1) Extensive use of the 'select non manifold' function to iron out geometric impossibilities. Kill off double verts, holes in edges, unintentional floating polys and other weirdness. When it's clean, the only edges that should get selected with that tool are the edges of small floating greebles. Ie, if you then pressed ctrl+L to select everything physically linked to the current selection, only those small greebles should get selected. NOT the main hull.
2) Select all geometry objects and press Ctrl + A and apply scale and rotation to object data for everything. This is cos it's easy to forget which individual subobjects may have changed rotation or scale since the last time it was done, so it's an important clean-up step prior to any conversion.
3) For each object, enter edit mode, select all and recalculate normals to be on the outside (Ctrl + N). This is probably the biggest cleaner-upperer, but without step 1 having been done chances are it won't be that helpful.
4) For each subobject excluding the rotating ones that already have specifically positioned centres, use the 'Centre New' buttons in the edit tab to ensure the subobject centres are where they should be.