Rename the target mesh (e.g. "t2_084_pwa__short_sleeves.mesh" -> "original.mesh").
Rename the source mesh to the target mesh (e.g. "t2_135_wa_jacket__monk_shirt.mesh" -> "t2_084_pwa__short_sleeves.mesh")
Open both meshes in WolvenKit
Target (original) mesh and its variants
Source (new) mesh and its variants
Step 2: Change the .mlsetups
Before we can edit the mlsetups, we need to find out which spawn code corresponds to which meshMeshAppearance. The process is pretty straightforward — it's documented here.
The wiki has a list with mappings for easy lookup. Feel free to add to it!
For example, the appearance "black" with the chunks pointing at pasted_ml_t2_135_wa_jacket__monk_shirt_fancy will look for:
Don't ask me how the lookup/naming works, I have no idea. Just copy it from the source mesh.
The names of the meshMeshAppearance need to be taken from the target mesh - when spawning an item, the game will look for the variant "black", since that's mapped to the corresponding item code.
The values in the chunkMaterials belong to the source mesh.
Rename all the variants in the source mesh with those from the target mesh. Then, make sure that you can tell them apart (e.g. by giving each variant an individual appearance or colouring the mlmasks. What worked for me was using primary colours on the mlmasks, and then using each of them fully or with plastic sleeves. Your mileage may vary.)
Step 3: Success!
After you've found out which spawn code corresponds to which appearance, you can now alter the appearance files.