I do this all the time, so if I undrstand correctly what you want, this will work.
Keep all animations in a single sprite and pin it to whatever....
Add a number after each of your animations. Let;s say Wizard is 0 and has 3 animations, walk, run, jump.
Add 0 so they are renamed walk0, run0, jump0. Elf animations will be walk1, run1, jump1
Then use a global variable called selected. When you select the wizard set selected to 0 and in your events target animations like this: "walk"&selected , "run"&selected and so on
If a different character is selected then variable would be set to 1, or 2, and do the same thing, adding those numbers to each animation's name.
So that sprite will be pinned to your puppet sprite and the right animation will be playing depending on selected variable