How to switch to another player controller with C++?

That’s really strange. What engine version do you use?

As I can see you’ve got another uproperty (Default Player Controller) working fine.