There are a couple of ways to do this - one is a pretty neat trick
Could you send me the VCE file and I will record a video of how to do it using your data as I don't have an example that I can readily find to do it on.
What I would do is assign a "Null Texture" to the surface - i.e. use the Add Surface Texture command to add a Surface Texture to the areas you want to "exclude" When asked for the Material don't select one. The name of the Texture you place can be anything but I use Null Texture. This has the effect of painting the Triangles up to the edges of the roads with "No Material" which is the same as placing a Hole in the Model. The Null Texture will stop as soon as it hits a Breakline with the Sharp and Texture property or a breakline that is created by a Corridor model (should apply to all your breaklines in the roads.
The hidden triangles are actually still there - they just cannot be seen and when you export a TTM or PRO or SVD/SVL or DSZ file the hole will be present in the surface model. The attached video shows the same thing for a large rail job where they had the same issue where the source data was 3D Faces from a DWG file - the video shows the process. The hidden triangles can be shown if you change the color of the surface model to have an RGB color of 100, 101, 102
You could also use "Track Region" if you have linework for the roads, to define the areas where you want Holes and then apply the linestrings created using Track Region as Surface Boundaries - note that you will need a boundary around the outside of the project if you want to place inner boundaries to make holes in the model. I am just not 100% sure whether track region will pick up on embedded breaklines from corridors or not as I doubt you can select them, so you would likely have to Explode the corridors to create the linework unless you have the lines as CAD lines from the source data.
The Texture method works very well though.
Alan