I think I know the problem here
Since the Primary Parts of the NPCs’ Network owner is set to the server (nil) it is controlled by the server and not the player holding the NPCs. Maybe you could try to set the NetworkOwner to the player holding the NPCs and tell me how that works out (I can’t do it right now because I cannot use Roblox Studio currently)
It would be something like
PrimaryPart:SetNetworkOwner(PlayerObject) -- In this case, the player holding them