I believe that there are several bugs involved.
First of all, doing \vphantom{something}^a in TeX should be exactly the same as saying {}^a, because \vphantom can never be the nucleus of a math atom. So when TeX scans ^, it adds an empty subformula as the nucleus of the math atom that should be superscripted.
I'll simplify the setting by using {>} instead of \smallblacktriangleright that's not relevant for the matter. Here's an example, first compiled with legacy pdflatex, then with LuaLaTeX and finally with XeLaTeX.
The \hrule is meant to show the top of the boxes, while the initial x
marks the baseline. The fractions at the bottom will be explained later.
Code for the example
\documentclass{article}
\usepackage{ifxetex,ifluatex}
\ifx\ifxetex\ifluatex
\else
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}
\fi
\begin{document}
\hrule height 0.1pt
x\(\displaystyle{}^a{>}^a\)
\hrule height 0.1pt
x\(\displaystyle\vphantom{>}^a{>}^a\)
\hrule height 0.1pt
x\(\displaystyle{\vphantom{>}}^a{>}^a\)
\hrule height 0.1pt
x\(\displaystyle{}^a{\sum}^a\)
\hrule height 0.1pt
x\(\displaystyle\vphantom{{\sum}}^a{\sum}^a\)
\hrule height 0.1pt
x\(\displaystyle{\vphantom{{\sum}}}^a{\sum}^a\)
\hrule height 0.1pt
\(\displaystyle\frac{\scriptstyle a}{\scriptstyle b}\frac{a}{b}\)
\end{document}
Output with pdflatex

As you can clearly see, there's no difference in the placement of the left superscript when {} or \vphantom{>} is used. Nor there is in the third line, where {\vphantom{>}} is the nucleus of the math atom that receives the superscript.
Similarly there's no difference in the first two lines when \sum is used instead of >, but the difference shows up in the third line.
Output with LuaLaTeX

This is essentially the same as before.
Output with XeLaTeX

A few differences show up. The top three lines are different from each other. For the first and third lines, this might have to do with how XeTeX processes the information from the OpenType font, in order to transform it into the appropriate \fontdimen parameters and should be fixed to match the legacy typesetting.
The second line is plainly wrong. It seems that when a \vphantom is concerned, which involves \mathchoice, the dimension used to set the superscript to the added empty nucleus is relative to the scriptscriptstyle font.
This might be connected with another known bug of XeTeX, that shows up with fractions. If you compare the fractions in the first two images, the fraction line is at the same level; in the XeLaTeX output, the fraction with scriptstyle numerator and denominator has a lower and thicker fraction line.
The connection seems quite likely, because fractions and \mathchoice (on which \vphantom is built) use a very similar mechanism.
Solution?
None that can be deemed as general as one could hope. Use an appropriate
{\vphantom{?}}^a
where ? is some symbol whose height makes the height of the superscript to match the desired one.
\vphantom{\bigg|}^aand you'll see that the phantom has no influence on the placement of the superscript, because a box doesn't make a math atom. – egreg Feb 26 '16 at 16:14\[\mathord{\vphantom{x}}^a x^a \mathord{\vphantom{x}}^a\]the first is wrong, the second ok. – Ulrike Fischer Feb 26 '16 at 18:58