How are UTXO forwarded to other addresses?
A first thing to correct is that UTXOs are not referenced by address, but by the txid that created them. The addresses are purely a human abstraction about locking conditions to help think about ownership.

So in your example what happens is that in the initial transaction tx0 created by A, B was credited with 10 BTC. Assume that transaction only had one output. That means that there is now the state of the UTXO is:


tx0:0 (10 BTC, spendable by B)


When B now wants to pay C, he creates a transaction tx1 with input (tx0:0, (signature by B)) which consumes the UTXO listed above, and has outputs (tx1:0, 5 BTC, (spendably by C)) and ((tx1:1, 5 BTC, (spendable by B)). Note that the tx1:0 and tx1:1 are not actually stored in the transaction here; they're implicit as the 0th and 1st output of tx1.

The state of the UTXO set is now:


tx1:0 (5 BTC, spendable by C)
tx1:1 (5 BTC, spendable by B)