By operating on the subentities within the block definition, you'll inevitably affect all references of the block definition in the drawing, as this is precisely how blocks in AutoCAD work.
If you're looking to change the visibility state of a dynamic block reference, you should instead modify the value of the appropriate dynamic block property object corresponding to the visibility state parameter. Such dynamic block properties may be accessed using the ActiveX
getdynamicblockproperties method (examples
here).
When the visibility state (or indeed, any dynamic block property) of a block reference is changed, AutoCAD will automatically generate a separate anonymous block definition containing the altered geometry (unless such an anonymouse definition for that combination of dynamic properties already exists in the active drawing), and the block reference will reference the anonymous block definition.