Character doubles speed when landing on moving platform

Hi there,
I am struggling to fix a bug I found in the character movement. As the title suggests, when a character jumps and lands on a moving platform, the character will add the velocity of the platform to itself.
Since the character movement component calculates it’s velocity relative to the object it is standing on, it will result in a sudden increase of velocity that is incorrect.
The way the default component manages this is by increasing the ground friction to the point where the stopping is instant. I do not feel that is an actual solution. It also looks very strange for characters to stop on a dime.

Logically, the fix should be very simple, right? Just subtract the velocity of the base on landing. Easy! Just put this:

// React to changes in the movement mode.
if (MovementMode == MOVE_Walking)
{
	bCrouchMaintainsBaseLocation = true;
	// make sure we update our new floor/base on initial entry of the walking physics
	FindFloor(UpdatedComponent->GetComponentLocation(), CurrentFloor, false);
	AdjustFloorHeight();
	SetBaseFromFloor(CurrentFloor);


	//Temporary fix until something better
	
	Velocity -= GetImpartedMovementBaseVelocity();
	
	// Walking uses only XY velocity, and must be on a walkable floor, with a Base.
	Velocity.Z = 0.f;
	//SetGroundMovementMode(MovementMode);

}

into OnMovementModeChanged() and call it a day.
As if! While this does indeed stop the character from flinging itself off a platform, it introduces a tiny teleportation (no more than a few centimeters regardless of speed) in the direction of the platform’s velocity.
I have tried my best to find the source of this; I moved those few lines of code around thinking it was just some poor timing. I moved it in CalcVelocity, SetPostLandedPhysics, PerformMovement and probably PhysWalking and PhysFalling (It’s all a blur at this point).

Can someone please help with this?