https://github.com/Howaner/MCServer/blob/GlobalFixes/src/Entities/ArrowEntity.cpp#L41
The player spawning an arrow spawns it at their ThrowStartPos. This did work the last time I checked.

The entity-based constructor for cArrowEntity must not adjust the arrow position - the caller already provides the position in the parameters and doesn't expect any changes to this position. If needed, apply the adjustment in the caller of this constructor.