Attribute overlays make everything more complicated of course. Handling of these follows a similar structure - the MeshChangeTracker creates a FDynamicMeshAttributeSetChangeTracker, which in turn creates a TDynamicMeshAttributeChange for each UV and Normal overlay (grouped together in a FDynamicMeshAttributeChangeSet). However you don't have to explicitly do anything to get Attribute support, if the initial Mesh had attributes, then this all happens automatically, and the attribute changes get attached to the FDynamicMeshChange.