Vertex Parented empties become offset after Set Origin to 3D cursor?
Script to fix
To make the parent relation directly to the vertex, so editing will reflect position, run script below. Zeros the location of the empty and clears the parent inverse.
When setting origin to geometry of mesh both the location and parent inverse of the empties are changed, reflecting the translation of the origin location.  (The (0.18, -0.06, -0.41) part of the matrix shown in comment above).
Select the mesh object (make active) and run the script.
import bpy
from mathutils import Matrix
from bpy import context

scene = context.scene
mesh_ob = context.object
empties = [e for e in scene.objects if e.parent == mesh_ob]

for e in empties:
    e.matrix_parent_inverse = Matrix()
    e.location = (0, 0, 0)

The UI equivalent would be select all empties, AltG clear location and AltP clear parent inverse.
Script to add empties at each vertex
Since I have touched on scripting, feel it is a good idea to include a script to add empties to each vertex of a mesh object.
Have named them &quot;Vert&lt;i&gt;&quot; where i is the index of the vert, given them circle display and 0.2 empty scale.
import bpy
from bpy import context

ob = context.object
coll = context.collection

for v in ob.data.vertices:
    mt = bpy.data.objects.new(
        f&quot;Vert{v.index}&quot;,
        None,
        )
    mt.empty_display_type = 'CIRCLE'
    mt.empty_display_size = 0.2
    mt.parent = ob
    mt.parent_type = 'VERTEX'
    mt.parent_vertices = [v.index] * 3
    coll.objects.link(mt)