Using OnUpdateTransform to set a Niagara Component doesn't work when moving Actor, unless Components are offset from the root Component.

I am trying to make a Laser scene component that will display a laser beam in a certain direction and handle it colliding with objects and players. I followed this tutorial to set up a particle system that looks like a laser, then started writing a LaserComponent (which inherits from USceneComponent) in C++. The LaserComponent has a UPROPERTY referencing the necessary particle systems, some other UPROPERTYs to configure laser color and length, and the actual NiagaraComponent(s) that it will use.
image

I want to be able to see where the laser while editing. To achieve this, I overrode the OnUpdateTransform function in my LaserComponent class so that the NiagaraComponent parameters will be set every time I edit the laser’s position:

I made a Blueprint actor to test my component, and in the Blueprint editor it works just fine. I can see the laser beam and it moves around properly as I move the components:

However, in the Viewport this doesn’t work unless one of the non-root components is offset:

For the life of me I can’t figure out why this is happening. I used UE_LOG to check whether the OnUpdateTransformed is getting called correctly, and it is. The vector paramater is also getting calculated correctly, it’s just not getting set into the NiagaraComponent for some reason. Does anyone know what the problem is?