To center a text layer vertically, apply this expression to the Anchor of the text layer:
s=sourceRectAtTime();[0,s.top+s.height/2]+value
This will move the Anchor Point to the true vertical center of the text block. You can then tweak the values to adjust.
This works for single lines, multiline, and even text blocks.