Did you not create a blueprint for the Player Character? The best I can gather from your description is that you placed a lot of functionality in the base C++ class. You can just derive another class and reparent your Player Character BP to that and put your collision in the derived C++ class if setting stuff up in C++ is your worry. If you’re setting up collision in BP or in editor, you shouldn’t have to do anything with your classes.
If you mentioned what your COMPLETE class hierarchy was up to ACharacter for both Player and AI and if each one is C++ or BP, we could better help you.
What I’m sensing is
BP_AI->AAICharacter(C++)->ACustomCharacter(C++)->ACharacter
BP_Player->ACustomCharacter(C++)->ACharacter
But you need to confirm what you have. There’s also class redirects you can set in one of your ini files to redirect to a base class for your player character. There are lots of options available but need more details.