Bitcoin uses a public ledger. Everyone with a computer with internet accesses can look at it.
If Grace knows all of Alice's addresses, she can just go to https://blockchain.info, type them in, add all of their balances together, and learn how much money Alice has in Bitcoin. The balance of an address is public knowledge.
The transactions are public knowledge, too. Example: You can just type the transaction ID
4b2e8294d8ca52686199e6a39f8c598e9877cecfe23660fe9476c57b85705d03 into the search field on https://blockchain.info (the field in the middle of the page, not the one in the top) and get to this page. There, you're told that 0.02434413 BTC have been transferred away from
3QkXKPidWd6C7R7cXt6ELPBsEXiV57FF4Z in this transaction. 0.00118965 BTC have been sent to
18dSzyvo2AuCmW3YKSqJk3HgrpzxDKR1w6 and 0.02295001 BTC to
393yZh7nRQnpDJHeGDbNsekBkJq9cd9nyL. The fee of that transaction is simply the difference between the sum of the inputs and the sum of the outputs, so that's 0.02434413 BTC - (0.00118965 BTC + 0.02295001 BTC) = 0.00020447. You can also see which transactions each address is involved in.
This part of your question really is like asking:
"I know that the coins in the top row and only those belong to Alice. Can you figure out how much money she has?"
Of course, you can just sum their values up and find that she owns 72 ¢ if you even know the specific coins she owns (that she owns specifically the 20 ¢ coin in the top left but not the one below that one). In Bitcoin, addresses don't equal coins but the distinction isn't important for this.
To provide privacy, you need others to not know which addresses are yours. Because everyone can create addresses on their own and they aren't connected to your name or anything about you when you create them, the only way others can learn that they are yours is by either you telling others that they are yours or you interacting with them in ways which let others conclude that they are yours.
Wallets often give you many addresses to choose from, not only a new one after the old one has been used, so you don't need to reuse them if you're giving away several addresses to different people/companies at once.
For example, if you buy something in an online shop and pay using Bitcoin, you know that the address you sent the money to belongs to the shop owner. You can then go to https://blockchain.info and see where the money goes next. However, the addresses it goes to tells you virtually nothing about the people who control the money constituting their balances.
If you reuse the address you used to pay for your purchase, the shop owner has reason to believe that the other payments you made from that address are yours, too. That's way you shouldn't reuse addresses: You let others build up knowledge that the addresses you reuse belong to you. When doing so, you not only make it easier for others to track you but also to track the people you interact with (receive money from or send money to) as your addresses become associated with your identity and can be used find out which other addresses belong to which other people.
I explained a bit about how you can attempt to escape tracking if someone knows that a certain address belongs to you in my answer to this question.