OK - Please see the attached.
To force the switching of geometry after a vertex, you need to break the array with a corner. I've done this by allowing corners to be created using either Corner or Bezier-Corner verts. In the case that a Bezier Corner vert is used, a null segment is added to the corner instead, breaking the array but without adding any geometry. Basically, you add a Bezier-Corner when you divide the spline into different IDs.
As for the symmetrical corners - that made me scratch my head!! I've solved it, but I need to tweak the Symmetrical Corners macro a bit for each row of a 2D array, This is to take into consideration the depth of the segments in the rows below.
I hope it helps,
Paul