How does Bitcoin verify each transaction? So I realize that the Bitcoin transaction I make has information such as my wallet number, the amount of BTC being sent, and the recipient wallet number, and this whole message is encrypted using my own private key. And that this message can be decrypted with a public key.

Now, how do all the other nodes who need to verify my message
1) Know that this message is actually from me? When did I ever send them my public key?

2)J Know that I actually have enough funds to cover the transaction?
1) Nodes need not to know its your message, nodes are ok as long as your message is in correct format and satisfying the conditions.

2) When you broadcast transaction, your wallet will provide previous unspent transaction reference in the input section. Nodes will verify if those are really unspent and if the amount in output section is less than the total amount in the referenced input transactions.