Think of a bitcoin transaction as a paper check, and confirmation as cashing the check. The check, itself, is no different prior to cashing than it is after cashing. However, the person who gave you the check could have closed down his account after writing you the check, yet prior to you cashing the check, thus making the check invalid. The check contains the same information, but the system to which it belongs changes.
So the account the check/transaction is drawn from remains the same. The amount of the check/transaction remains the same. Who the check is made out to remains the same. However, whether or not the money represented by the check/transaction has already been claimed can change.
So:
Can you verify the from address?
Yes
Can you verify that the amount transferred is accurate?
Yes
Can you verify that the sender has enough balance to be sending this amount?
Yes, but it could change if a competing transaction is broadcast prior to confirmation. So in your scenario A, a double spend attempt could spend the UTXO before the "real" transaction makes it into a block. This means that you can't verify the validity of your transaction until at least 1 confirmation. In your scenario B, where double spending isn't economically feasible, you can assume that if the outputs the transaction inputs draw from are unspent, then the transaction is valid.
Anything else?
Deriving additional information from a transaction is too large a topic for this answer. You may want to look into blockchain analysis.
Also keep in mind that this check/transaction metaphor breaks down at some point. For example, Bitcoin transactions can have multiple inputs and outputs. Also, anyone can look to see whether an input is unspent, and not just a central authority.