How do HD wallets use mnemonic to recover all private keys? As I understand, a wallet like BRD wallet can have many private keys and receiving addresses.

When I give them the mnemonic, how do they re-generate all of the relevant private keys from that mnemonic alone?

I saw a video on a master private key, and I cannot figure out how it all ties into it because I could generate multiple private keys from the master private keys, or I could generate multiple private keys from any of the children private keys of the master. How does the wallet know from just the mnemonic, which path I took?
mnemonics are the seed. you use that to get your private key.

the rest of the story as you have pointed out, is about deriving child key pairs. The process is deterministic (as the letter D in HD), meaning that you can get the same tree of child keys from the root seed whenever you do that. This could go "indefinitely", so how would you know when to stop? The answer is that you need additional information about the depths.

In the case without branches, you simply need to know how many keys have been generated (whether they received payment or not) to get the full balance. Most implementations of default look-ahead and will stop checking after a certain number of addresses don't have any UTXO.

With branches, it gets a bit more complicated. But in theory, if you know where things branch and how deep it go, you can restore the full tree.

[EDIT] in response to your comment, there are standard ways though. For example, this picture here shows the hierarchy.