The problem you have is related to the First Baseline Offset setting of the text frame.
You can access the Text Frame Options of a text frame by by selecting it and either right-clicking it and choosing Text Frame Options or pressing Cmd + B on Mac or Ctrl + B on PC.
Under the Baseline Options tab you'll find the First Baseline > Offset which specifies the vertical position of the first baseline of the text frame.
The default setting is Ascent, but as you see there are five different options.
Assuming you have set the Vertical Justification > Align to Center they will give you these different results:
Ascent, Cap Height and x Height uses info found in the font file. Leading uses the leading of the text. Fixed allows for any custom position on or below the top edge of the frame.
You should probably use Cap Height (if you want to center the text according to the uppercase letters) or x Height (if you want to center the text according to the lowercase letters).