UI Update issue PropertyGroup UIList Item 'name' prop's update hook?
When defining a PropertyGroup one can define a StringProperty 'name', overwriting the internal name property.
Any interaction with the name will use this new Property.
This can be used in conjunction with a second StringProperty to create an update-hook like this:

import bpy

class Test(bpy.types.PropertyGroup):
    # there's allways "name" as a StringProperty.
    # we may overwrite it though, to add callbacks
    def _upd_name(self, context): # this will handle our update
        if self.name == self.old_name: return # abort: no change, no update
        print("changed name from '%s' to '%s'" % (self.old_name, self.name))
        for item in context.scene.test_collection:
            if item.ref == self.old_name:
                print("...updating ref in element:",item.name)
                item.ref = self.name
        self.old_name = self.name # update our old name
    # the _upd_name function must handle all callbacks.
    name : bpy.props.StringProperty(update=_upd_name) # our public name
    old_name : bpy.props.StringProperty() # helps us with our update
    # lets get a property to update
    ref : bpy.props.StringProperty()

def register():
    bpy.utils.register_class(Test) # register it and assign it
    bpy.types.Scene.test_collection = bpy.props.CollectionProperty(type=Test)
    # lets give it a test
    scn = bpy.context.scene
    A = scn.test_collection.add()
    A.old_name = A.name = "A" # setting both at the same time suppresses update.
    for n in "BCDEFGHI":
        item = scn.test_collection.add()
        item.old_name = item.name = n
        item.ref = A.name
    A.name = "A" # no real update
    A.name = "my-chosen-name" # update

if __name__=="__main__": register()


Note that this will lead to a second entry inside the rna_type.properties collection:

print(list(bpy.context.scene.test_collection[0].rna_type.properties.keys()))


Ideally we'd like to add the update function to the original item, but that seems to be impossible. Notice that you can not patch a hook to the name of objects either, as they are done internally. You'd only loose the ability to change the real name as your interface starts using the new name.