Use the following instead:
Print[Framed[
Row[{"v = ",
NumberForm[Quantity[10.38, ("Meters")/("Seconds")], 2]}]]]
The issue you were having was because "v=" NumberForm[...]
means Times["v=",NumberForm[...]]
and so the syntax form of the underlying quantity was taking over, because a string times a quantity doesn't evaluate. Another example of this would be:
"v=" RawBoxes@InterpretationBox[10, 10, SyntaxForm -> Mod]