How do I make the camera be able to turn 360 degrees?

To be honest, I’m not sure the default character movement component is going to work well. From what I can see, it won’t allow for rotation in the air. I don’t think rotating the camera is what you’re looking for, I think the whole character needs to be able to pitch and roll.
If it was me I’d make my own movement code. You can try using physics, so for jump you’d add an impulse, then when in the air you can add rotation to your capsule, but the issue with the built-in physics is that it’s hard to control and you’re going to have side-effects.
I know this might be a bit intense, but you can use a simple integration for you gravity and momentum.

This is c++ but easy to do in blueprint as well:

void APlayer1::Integrate(float DeltaTime)
{
FVector Vel=Position-PositionOld;
Vel=Vel+(Gravity*DeltaTime);

PositionOld=Position;

Position=Position+Vel;

SetActorLocation(Position);

}

This code also makes jumping fairly easy. You can just set the PositionOld below the character this will create upward velocity.
Not sure if you are going to use wall running, but there will be some challenges there.

For your pitch and roll you can simply do a line trace each frame to see if you’re on the ground, if not, then you enable the controls to rotate the player. If you’re on the ground you reset the player rotation x and y to 0. You’ll probably want to use an FInterp or something similar just to smooth out the snap to upright.

Hope this helps a bit.