I always thought that blocks were like trees where one transaction creates a branch. Is it more like a line and where one fork or double spending creates a branch?
It's a line, more specifically, it's a chain since each block is chained to the one behind it.
I ask this because I thought hashPrevBlock would stay the same for a transaction when trying to mine it until the transaction in the block has been mined but now I'm assuming it changes everytime someone mines a block unassociated to that transaction?
Transactions don't have a hashPrevBlock, blocks do. A block's hashPrevBlock is always the same, regardless.
Also, on a side note, if I were to start mining would my machine also be 'listening' to blocks which have been mined in order to update itself and 'pass' on the work and get more work as the block it was trying to mine has already been discovered? If we say 50% of machines are needed to confirm correct nonce for your discovered block are we waiting on these 50% to agree and then you will get the reward? How does this reward process begin and end ie discovered block > sent to all machines > 50% confirm (how can my machine decide what 50% of the machines are?) > they've confirmed > the reward is assigned to my address (how does this get assigned via blockchain?)
It doesn't work like that at all. There isn't any need for any percent of the network to confirm anything. Rewards are not assigned to addresses by other people.
If you are a miner, you create the block. In your block, the first transaction is the coinbase transaction. That transaction is one that you create yourself. It is the only transaction in the block that is allowed to have a blank input and it must output at least 12.5 Bitcoin. This can be split among multiple outputs and it goes to whomever you want; usually yourself.
When you create that block, you broadcast it to the network and then immediately start working on the next block. If you receive another block, you are supposed to validate it (check the proof of work and the transactions). If it is the same height as the one you just broadcast, you keep it but keep working on the block you already started. If it is a higher height (longer chain, more PoW) then you discard whatever you are working on and begin building a new block on top of the one you just received.