How to subtract overlapping geometry when making surface from curves

I am harvesting GIS data using Heron in grasshopper, it is outputting a significant number of geometries as points which I turn to curves and then make a boundary surface from. The problem is that there are closed curves within other curves that I need to come up as voids. i.e. like coutryards. I’ve run a shift component which has worked on some but not all.

I can’t isolate or select the individual geometries I want to subtract because they are in a large data set.

any help would be appreciated.