The problem here is that a vertex parent has to be a real vertex (or 3 verts.) But the skin modifier completely replaces your existing vertices. It really doesn't know which output vert is the input vert to which you parented. There's plenty of options, none of them right, because your original parent vert doesn't exist on the output mesh.
However, it does do one thing okay, which is generate interpolated vertex groups from input verts. So you can mark a vertex in your skin object with a vertex group, and then copy location from a vertex group:
Here, I've assigned a single vert of my skin mesh to the vertex group "y". Now, I can use a copy location constraint targeting that vertex group, and it's the same as parenting to a single vertex.
What if we wanted to parent with an offset? Copy location has an offset, but I'm not experienced enough with it to know if it does what I want. So instead, I'd give an empty that constraint, and then parent my object to the empty.
What if we want to do a vertex triangle parent? We'll need three different marked vertices. We'll copy location from one, damped track Y the next, and locked track X (lock Y) the third. For the full "vertex triangle parenting" treatment, we might parent the child to the object, as an object parent, to inherit its scale. (But I never do that, it's just a mess waiting to happen, regardless of how we get there.)