From a technical point of view, you have several options: Remesh, Dynamesh, Booleans, ZRemesher or manual Retopology. For some, like Booleans, you'll have to split your Mesh into separate subobjects first and for ZRemesher probably one of the other options to get a solid, non-intersecting mesh. I'm a bit rusty, but at this…