How do I lock a first person camera to the head of my character so that when they do a roll or flip, the camera sees what they'd see?

Title. Bonus points if I could constrain camera rotation boundaries during these animations so that the player doesn’t feel a jarring loss of camera control when they’re playing.

Have you tried parenting the camera to the character? You can use a Spring Arm to have more control over how the camera moves.

I have. I’m using the GameplayCamera component, and when I do this, any rolls or flips just result in the body doing the animation, but the head continuing to point in whatever direction I was aiming before starting the action.