with the help of eikonoklastes in the Think Procedural discord group I've got a solution:
Setup a for loop block with an attribute wrangle in the middle with the following vex operating on vertices:
This VEX block will test the position of vertex id 0 is above 1 OR if vert 2 is above 3 on the Y axis and if it is then add that prim to a new group marked to be shifted later with a Reverse sop pre-divide
vector pos_0 = vertex(0, 'P', 0);
vector pos_1 = vertex(0, 'P', 1);
vector pos_2 = vertex(0, 'P', 2);
vector pos_3 = vertex(0, 'P', 3);
if (pos_0.y > pos_1.y || pos_2.y > pos_3.y) {
setprimgroup(0, 'to_shift', 0, 1);
}