* partial answerYou could translate the figure being rotated back and forth.
GeometricTransformation[g, RotationTransform[{u, v}, p]]
is sometimes equivalent to
Rotate[gTranslate[Rotate[Translate[g, VectorAngle[u-p], v]{u, v}], p]
For example,
u = {1, 0};
v = {1, 1/5};
p = {1/3, 1/3};
g = Rectangle[];
Graphics[GeometricTransformation[g, RotationTransform[{u, v}, p]], Axes -> True]
Graphics[Rotate[gGraphics[Translate[Rotate[Translate[g, VectorAngle[u-p], v]{u, v}], p], Axes -> True]
This works in both 2D and 3D.