That's probably due to how the Revit Family was made. It sounds like the families you're using are defined so that their height is to the *bottom* of the cabinet. If you look in it's properties, you'll see that each cabinet has an elevation value. When you're placing those manually, you're actually setting that elevation when you place the cabinet. This is why when you change the cabinet, it holds the old elevation, and goes off. Either make some cabinets that are defined by their top edge instead of the bottom (which is what I think the out of the box ones are) or simply use the Align tool to 'lock' their top edges together, and then swap to your heart's content...
Jeffrey