I worked through a similar issue with vue-meta which didn’t fill in the values for the head tags that were ready by PhantomJS.
Turned out it was a problem with data availability, I am reading the values through a vuex state with an action dispatch on the components, and although things look ok on normal testing, on a first direct entry to a given route (like the prerenderer does), the data would initially not be there. I changed to having a beforeEnter navigation guard that resolves the data promise and then renders the component and suddenly vue-meta started working properly.
Not sure this also applies to you, just thought I’d share it.