You could also make it a `switch` spell:
Make variables that will store the 2 unit positions, or make them local right in your trigger. Then make your spell based on blink strike, so that it will teleport Dante to the peasant (if it is not enemy make blink strike targeteable to friendly units). Make a trigger that will activate when the spell is cast, recording Dant'es position in a variable, and moving the peasant to it. After that you can change unit control if you are casting it on enemy for example:
Actions:
If all conditions are true then.....
Conditions:
Target of spell is ally of Owner of casting unit
Then Actions:
Do nothing
Else:
Give control of Target of spell to Owner of casting unit. (That if you want the peasant to be yours (i.e. Dante spirit into the new peasant, leaving old peasant behind, but in your control.) if not, then dont do the if/then/else actions.
Framework Specifics: Dante Casts, you could make a special effect to the ability, its up to you, the two units switch sides, and ownership of the units is your business, not sure if you want the 'new' Dante to be from Owner of target of spell or whatever.
And that is my 2 cents, I'm pretty sure it can work.