There are numerous examples of how to move a Rigidbody when colliding (OnControllerColliderHit) with something. I want to do the opposite, I want to move a CharacterController based on the Rigidbody's movement.
Any suggestions on how to do that?
I've tried using another Ridigbody attached to the object with a CharacterController as well as trying to get the velocity from the colliding Rigidbody.
For this, you might consider just not using CharacterController (since not being pushed around by collisions is pretty much the whole point of using the character controller!).
It's not that hard to set up something similar to the First Person Controller prefab using your own capsule gameobject + rigidbody. If you like, just make your own copies of the Mouse Look and and FPSWalker scripts, and add them to your own gameobject, and tinker with them from there.
You'll want to use Rigidbody.freezeRotation to make your capsule stay upright, and you'll need to implement your own alternative to 'isGrounded', since that's something normal rigidbodies don't have. You could do this by tagging your ground objects, and checking your collision results for any appropriate objects, and whether the collision contact points are within a certain area of the bottom of your capsule.