you'd be off better by doing this before turning the curves into a road
when your curves are snapped that makes things easier
you must find when two paths cross eachother (intersect curve may help out) and at these intersection points cut & prune the surrounding curves by an arbitrary value so that your roads will leave an open space at any T-junction (or cross section)
you could intersect all curves and at all intersection points found create a circle, then cut all curves using all circles and delete any segments that are inside the circles to clear all your junctions of roads
the remaining task is to somehow store what curves have cut eachother, so that you can group the end points together (all end points created by cutting one such circle belong in one group) and then place geometry between them
How you go about that is up to you but you could create predifined shapes for T junctions, splits, cross sections, 5 roads coming together etc, then use clusters which you snap to the points in the group and aim to the curve tangent
Edit: just made a little test by taking a plane (without divisions), extruding it's edges outwards and making a little constrain & cluster construction
Every extruded edge gets a cluster, at this position I also place a locator
Then in the direction of the locator I add another locator, the first aims to the second, the first locator also parent constraints the cluster
This way the locators can be placed at the first 2 CVs of a curve to have the cross section attach in the right direction, repeat it 4 times for a cross section and there you go
THe only thing remaining are the 4 original vertices, those I give one cluster per vertex and then one vertex gets constrained by it's adjacent connection locators
