If subsurf casuses a hole, that must mean there’s 2 verts on top of each other or something else erroneous about the base mesh. Did you try Vertex > Merge > By Distance?
If you provide a download link to your .blend file (with dropbox, google drive, or equivalent service) I’ll take a look.