I think you're out of luck. There are close to 7,000 (!) Blocks in that drawing, apparently every one with its own separate Block name, every one inserted only once, and worst of all, every one defined with its insertion base point in the same place! So no Block's insertion point has any logical or repeatable relationship to its image elements.
Any routine designed to replace Blocks is going to keep their insertion points, scale factors and rotations as they are, and just put in a replacement Block of a different name, using all those properties. I Zoomed in arbitrarily and found a Block 6946 near a Block 6947, and used my BlockReplace.lsp routine's BRA command to replace "all" 6947's [there was only one] with 6946. It did, but the replacement 6946 Block was [as it should be] inserted at the same 0,0 insertion point and 1 scale factors and 0 rotation as the 6947 Block it replaced had, which means it came in sitting right on top of the other 6946 Block nearby [which shares all those properties, as do all the rest of the Blocks in the drawing], and not with the image elements where the 6947 Block was.
It looks like there may be only two shapes of image involved, but since there are literally thousands of each shape, with thousands of individual Block names, all sharing the same insertion point and therefore with a different relationship of its image elements to the insertion point from every other such Block, I am at a loss to imagine a way to automate replacing all those of one shape with one Block, and all those of the other shape with another Block -- you may be stuck with doing it manually and tediously.
One thing I thought might work, but didn't: Since the Blocks all have their insertion points at 0,0, I thought maybe an element in each [since they are "defined" in terms of locations in relation to the insertion base point ] could be used out in the overall drawing as the insertion point to place a different Block with a logical insertion point. But I tried one of the vertical-line-in-"parentheses" shapes, and got the location of the start point of the first element in it [a Polyline, I think the vertical middle line], and used that location as the start point of a Line. It didn't actually lie on the endpoint of any of the elements in that Block, so that wouldn't be a viable approach. That locational difference may be somehow because they are all so hugely far away from the origin.
Since the drawing was generated by some program other than AutoCAD [I was warned when opening it], can you go back to the source and see whether there are any option(s) as to how to turn it into an AutoCAD drawing, that might give you a better result for what you're trying to do?
Kent Cooper, AIA