Ok. Why dont you try something like this:
Instead of using NetApplyGrav use a normal function instead.
What I did here is make Gravity a replicated variable. Also I added an authority check so only server actors do the ray cast and set gravity. Also apply gravity is a normal function not a network one.
Edit: Also forgot to mention, use a IsLocallyControlled check so gravity is only applied to actors that are being controlled by a player, this way you apply force locally using the gravity value replicated by the server.
And just be sure that replicated movement and replicates are checked on your actor replication settings.