Both formats carry a vertical anchor on the box body — ODF draw:textarea-vertical-align, DOCX wps:bodyPr/@anchor — and both sides of the I/O hard-coded "top", so an imported box dropped its centering and a saved one never got it. New textVAlign attr, read and written in both formats, rendered by flexing the rotor (the handles are absolute and stay out of that flow), set in the Shape Format tab beside the vertical-text button.