1) A troy ounce is about 10% heavier than an av. (I can't spell it) ounce, so the ounce of gold is heavier.
2) A troy pound is only 12 troy ounces and a av. pound is 16 ounces, so even tho' the troy ounce is heavier it's not that much heavier. So the pound of cotton is heavier
3) Water is slightly denser than one ounce per fluid ounce, so the water weighs more.
This is correct.
Ounce (avoirdupois) of cotton = 28.35 grams.
Ounce (troy) of gold = 31.10 grams.
Ounce (liquid) of water = 29.57 grams.
Pound (avoirdupois) of cotton = 453.6 grams.
Pound (troy) of gold = 373.3 grams.
The two "tricks" are that gold is measured in troy ounces, which is heavier than an ounce of cotton (measured in avoirdupois); and that a troy pound only has 12 troy ounces, compared to an avoirdupois pound which has 16 avoirdupois ounces.
The ounce of water is just thrown in for added confusion.