All nodes agree to add another transaction that mints a certain amount of bitcoins to the miner.
No, every miner already includes the transaction that pays them in their own block template. Whatever miner succeeds pays themselves by means of their block being the winner.
However, I am confused about what protections there are against a bitcoin node receiving a proof of work for a new block that it did not find itself, and then sending the that block around as though it mined it!
All data in the block is committed to cryptographically via hashes and signatures. The proof of work is based on the hash of the block header, which in turn commits to all transactions via the Merkle root. To claim the reward, one would need to change the output of the Coinbase transaction to send the reward to someone else instead of the miner. This would make the Merkle root that commits to all transactions invalid. So they'd have to change the Merkle root. Well, that would change the block header and make the proof of work invalid. This means that another user can't redirect the block reward, because the instruction to pay out the block reward is protected by the proof of work. If you change a single byte in the block, it's no longer valid.