I think this->SetRootComponent(ObjectInitializer.CreateDefaultSubobject(this, TEXT("Arrow")));
confuses reflection system try to initiate arrow component in diffrent varable (same as you did with CameraBoom) and then set it as rootcomponent, you can do that just by doing this RootComponent = ArrowComponent;
, component initiation procedure just by that will figure that arrow component is root.