Keeping two players attached to one another during action

I want to connect two players together during an action, but my results aren’t very consistent. Sometimes, Player 1 is not able to move Player 2 and vice versa. Other times, the script works as intended.

Script worked as intended on dummy:
https://gyazo.com/44a2703ec35dd588364fd0bb5dd20780

Script not working as intended on player:
https://gyazo.com/2141627e51b091a3db164fb53a862e4e

At the point of contact, the enemy player’s Humanoid Root Part is welded to the player’s Humanoid Root Part. The player is moving with the help of TweenService, and the enemy’s movement speed is set to 0 the entire duration of the move. I’ve tried not welded at all and letting an invisible wall push the enemies, but they just phase through the wall if it is going too fast.

Is there a workaround? Am I approaching this incorrectly?