My experience doing exactly the same thing is that there is a point where it stops working.
Workaround is to INTERSECT all your roads then make copies of them to use as CUTTERS for the MESH. The problem [for me] occurs when I use the SLAB that has already been INTERSECTED w/ the mesh as the CUTTER for the same mesh.
Yes, it works sometimes, then will stop working. But I've always been able to SUBTRACT w/ UPWARD EXTRUSION using a 2nd slab that matches the first. These can reside on an OPERATERS layer to not show during 3d sessions.
Duane
Visual Frontiers
AC25 :|: AC26 :|: AC27
:|: Enscape3.4:|:TwinMotion
DellXPS 4.7ghz i7:|: 8gb GPU 1070ti / Alienware M18 Laptop