This appears to be caused somewhere deeper in code. The issue seems to be related to the mesh having ‘bOnlyOwnerSee’ set to ‘True’, even if it is set to false in the constructor (I assume it’s being changed elsewhere, but i can’t find it).
I therefore got around it by calling SetOnlyOwnerSee(false); in PostInitializeComponents(), which hackily overrides it.
As soon as the player possesses a pawn, they become the ‘owner’ of that object and not the Player Controller - causing the mesh and other visual components not to render. Player Controllers do seem to have issue rendering things though, attaching a particle system to a camera in the player controller also causes it to not draw, for a different reason I am yet to discover.