|I can tell you why. This is the difference between local versus global coordinates. Each object has its own transformation, which is applied to the coordinates of the mesh vertices for display/rendering in the final scene. This transformation can include, not just translation to a different position, but also rotation and scaling. If in your first example you rescaled one of the cylinders (in object mode, not edit mode), to, say, 2× the size of the other one, then replaced the meshes as you did before, you will find that the enlarged cylinder becomes a correspondingly larger cube.
However, if you went into edit mode on that cylinder, selected all its vertices and scaled by 2×, then switched back to object mode and did the mesh replacement, you will find it does not end up as a larger cube. This is because your scaling in edit mode was affecting the positions of the cylinder vertices (which you were then throwing away), not the overall object transformation.
Anyway, from your description I think the Sketchup importer is creating a bunch of objects that all effectively share the same origin, it’s just their actual vertex coordinates that are differently positioned. Which sounds like a stupid way of doing things.
You can check this, by selecting each object in turn, and looking for the fat orange dot indicating the origin of its coordinate system. This should normally be somewhere within the object itself, not way outside elsewhere.
Anyway, you can fix this by selecting all the troublesome objects, and in the “Object” menu, “Transform” submenu, use the option “Origin to Geometry”.