Need help with subdivision surface
Its because how the mesh is shaped as it contains ngons so if you would add subsurf modifier it would create weird geometry


try creating a good mesh without tris and ngons just with quads.

Here I've converted ngons to tris and quads by selecting all the ngons and Hit Ctrl+T in Edit Mode. Then ngons will be converted to tris and quads.


Then by bevel edges you can see that some of the shape remains same.. 


So, the solution is to create a new mesh with good geometry just with quads if possible. and bevel all the edges that curve when subsurf modifier is used.

If you can create the mesh its great. If not try using Booltool addon it would save lot of time in creating these kind of meshes.