Can I merge objects without messing up their modifiers?
Although some modifiers can be applied to specific parts of a mesh via vertex groups, when you join them you will find that the active object's modifiers always overwrites the others. 

You will need to apply the modifiers before joining the meshes, or add them afterwards using vertex grouping. Sadly you will not be able to edit the modifiers after applying, but they will not be messed up by joining.