change your collisionfidelity property on your union to precise and that should fix it (it’s not perfect but it works well, costlier performance wise though.)
as for OP, please refer to this guide: Quick Guide Into CSG: Increasing Performance of Unions & Meshes
I will copy/paste what I said in another thread:
To surmise, are you going to re-use your unions a fair bit? - may be better than just having those models be parts (eg, if you have a chair unioned and re-use that chair as opposed to having the chair remain parts.)
are you going to union for the sake of reducing parts, but you aren’t going to re-use said unions? - bad idea, creates unnecessary triangles and collision issues.
are you using unions because you have no other options? - change colissionfidelity to box if the player will not interact with it.
meshes/unions are instanced about the same, but unions are more costlier in terms of tri-count which is why (generally) you should not have many unique unions if it’s not necessary. You cannot really control tri-count in Roblox. If you have one union, copy/paste that and re-use it, it’s good for performance rather than having several unique unions.
unioning several transparent parts that are close together is not a bad idea either.