I understand you are looking for a rotation-matrix which transforms one vector into another one. It seems that there are several possiblities.
I would like to suggest a more or less straightforward approach.
Let xx be your original, xxp the target vector (both have equal length of course). Now I can by successive rotations transform xx that it has only a z component, xxp only a y and z component. Then I can find the rotation-matrix that transforms the transformed xx into the transformed xxp, and then transform everything back int the original frame.
Look at this code
xx = {x, y, z} = {3, 5, 7}
xxp = {xp, yp, zp} = {7, 3, 5}
xt1 = FullSimplify[
RotationMatrix[ArcTan[xx[[1]]/xx[[2]]], {0, 0, 1}].xx]
xp1 = FullSimplify[
RotationMatrix[ArcTan[xx[[1]]/xx[[2]]], {0, 0, 1}].xxp]
xt2 = RotationMatrix[ArcTan[xt1[[2]]/xt1[[3]]], {1, 0, 0}].xt1
xp2 = RotationMatrix[ArcTan[xt1[[2]]/xt1[[3]]], {1, 0, 0}].xp1 //
FullSimplify
xt3 = RotationMatrix[ArcTan[xp2[[1]]/xp2[[2]]], {0, 0, 1}].xt2
xp3 = RotationMatrix[ArcTan[xp2[[1]]/xp2[[2]]], {0, 0, 1}].xp2 //
FullSimplify
xp4 = RotationMatrix[ArcTan[xp3[[2]]/xp3[[3]]], {1, 0, 0}].xp3
tRM = RotationMatrix[
ArcTan[xp2[[1]]/xp2[[2]]], {0, 0, 1}].RotationMatrix[
ArcTan[xt1[[2]]/xt1[[3]]], {1, 0, 0}].RotationMatrix[
ArcTan[xx[[1]]/xx[[2]]], {0, 0, 1}] // Simplify
tRM.xx // FullSimplify
tTM = RotationMatrix[-ArcTan[xp3[[2]]/xp3[[3]]], {1, 0, 0}]
tTM.{0, 0, Sqrt[83]}
rotM = Inverse[tRM].tTM.tRM // Simplify
rotM.xx // Simplify
rotM is the Matrix you are looking for, but I agree, you don't have the angles you wanted.