What would cause a line trace to deflect from the crosshairs?

I think your problem is on the END point, when you calculate forward vector x 1000.

Try this, instead of getForwardVector, use this function I created.

Initial location: will be same location as your start.
Initial rotation: pass your Player.GetControlRotation value (NOT THE CAMERA VALUE)

I think this will solve your problem.