Oh, and one more question.
Looks like 2 more to me. Might want to work on your counting skills.
Is the fee you set received when a block is discovered or is received whenever a transaction is processed?
The fee is received in the new block when it is solved.
And one last question is every hash a transaction or how many hashes/kH/MH/GH does a transaction take?
That question doesn't make any sense. That's a bit like asking, "Is every color a motorcycle, or how many colors does a motorcycle take?"
A hash is a digest. It is a number that represents some information. Transactions are identified in bitcoin with hashes, bitcoin addresses are created using hashes, and blocks are also identified with hashes.
When mining, the miner calculates a single hash of the header of the block they are working on. If the value of that hash is lower than a target difficulty, then the block is solved and they can publish he block to the blockchain. If the hash is not low enough, then the miner alters a piece of information in the header and tries hashing the header again. The miner repeats this process over and over until they either find a hash with a value lower than the target difficulty, or they receive a block relayed by a peer that has a hash with a value lower than the target difficulty. Then they create a new block with whatever transactions they want to include and start all over again.