Not a full answer but perhaps something you can work from.
Thinking of a matrix as the action it does on the unit sphere $\{Ax ,\|x\| == 1\}$ which is an ellipsoid centered at 0, as it is the image of a linear transformation. The singular values represent the length of the semiaxes, the only freedom that remains is picking the orthonormal basis representing the direction of the semiaxes. Whatever is picked it should be possible to upper triangularize.
unitSphere[θ_, ϕ_] := {Cos[θ] Sin[ϕ], Sin[θ] Sin[ϕ], Cos[ϕ]};
λ = {1, 2, 3};
Manipulate[
(* Start with diagonal matrix and rotate the entire thing *)
m = RotationMatrix[{{0, 0, 1}, unitSphere[θ, ϕ]}].DiagonalMatrix[λ];
{u, w, v} = SingularValueDecomposition[m];
Show[
ParametricPlot3D[
m.unitSphere[a, b], {a, 0, 2 Pi}, {b, 0, Pi}, PlotStyle -> Opacity[0.3], Mesh -> None],
Graphics3D[{Arrow[{{0, 0, 0}, #}] & /@ Transpose[u.w]}],
PlotRange -> {{-3, 3}, {-3, 3}, {-3, 3}},
PlotLabel -> Diagonal[w]
],
{θ, 0, 2 Pi}, {ϕ, 0, Pi}]
