What would be the best for performance?

I have a Revive system and when you carry a player it sets the network ownership every heartbeat because it uses AlignPosition to mimic a weld without all the other issues that come with welds, when network ownership isn’t constantly set it lags behind.

I do this process on the server however I do wonder if I should do it on the Client > Server via UnreliableRemoteEvents

					disableCollisions(player, character)
					local CarryAttachment0 = PlayerWhoTriggeredHumanoidRootPart:WaitForChild("RootAttachment", 10):Clone()
					CarryAttachment0.Name = "CarryAttachment0"
					CarryAttachment0.Position = Vector3.new(0, 0, 1)
					CarryAttachment0.Parent = PlayerWhoTriggeredHumanoidRootPart
					local CarryPosition = Instance.new("AlignPosition")
					CarryPosition.Name = "CarryPosition"
					CarryPosition.Mode = Enum.PositionAlignmentMode.TwoAttachment
					CarryPosition.ApplyAtCenterOfMass = false
					CarryPosition.Attachment0 = RootAttachment
					CarryPosition.Attachment1 = CarryAttachment0
					CarryPosition.MaxForce = math.huge
					CarryPosition.Responsiveness = 200
					CarryPosition.Parent = humanoidRootPart
					local AlignOrientation = Instance.new("AlignOrientation")
					AlignOrientation.Name = "Align_PlayerOrientation"
					AlignOrientation.Mode = Enum.OrientationAlignmentMode.TwoAttachment
					AlignOrientation.Attachment0 = RootAttachment
					AlignOrientation.Attachment1 = CarryAttachment0
					AlignOrientation.Responsiveness = 200
					AlignOrientation.Parent = humanoidRootPart
					maid[player.Name.."UpdateNetworkOwnership"] = RunService.Heartbeat:Connect(function()
						for _, v in pairs(character:GetChildren()) do
							if v:IsA("BasePart") then

Which would be best for performance doing it on the Server or Client > Server?

(One thing I am concerned about though is how many players that are going to be firing the remote event especially since its every heartbeat)