Yup, the geometry is way too dense on these details. Why would you subdivide it so much anyway? I don't know the modifier names in Blender, but the usual workflow for all 3d modeling apps is to get a proper base for subdivisions, and then using "MeshSmooth" or "Turbosmooth" modifier. All you have to do then is to check visually if the shading is correct (there are no distortions or tension along surfaces) or further subdivision is necessary. You stop subdividing when there is no further visual difference between subsequent subdivisions. You don't need to have vertices on atomic level for high poly meshes.
A quick example from my WIP high-poly model, this is a plate for tiled furnace.
It's only as complex as it needs to be, the whole plate is only 7,5k tris.
Now this is after two subdivisions:
The plate is now 138k tris, because that's enough for that shape. Further subdivisions don't make any visual difference, until you really stick your nose to it. But that level of detail wouldn't make sense, as this will be baked on 2k texture, for the whole furnace, not just the plate, so any details would be lost. This way I keep my file sizes lower and my bakes are done faster.
This whole furnace has all tiles modeled and it's barely over 620k triangles: