That’s kind of what I was initially saying guys.
you really need a Rotate About Axis with a Pivot Point defined for this to work right.
The center point of each face is always .5 .5 of the original UV.
you could try a transform local to world on it and use as the pivot.
The rest of the calculations no longer apply.
you have to get a 2pi rotation angle to feed the rotate about axis.
Most calculations do this out of an atan2 with swapped x/y input (r g of the UV).
See if you can give it a shot - if any of this makes sense to you.
As always, the problem is getting the localized .5,.5 or Pivot of the face from the mesh into an x,y,z world unit.
So you probably need to add wpo to it. Or at least a Z value that makes sense