I'm about to create a watch-only wallet so I can copy my addresses more easily without having to worry about the safety of my private keys. Because private keys are not in the watch only wallet will I not be able to sign a message from it?
no. also when we talk about spending bitcoin we say we sign transactions not messages. messages implies arbitrary content.
The master key can generate all the bitcoin addresses of the wallet, and I think also their public keys, as an address is just a portion of the public key. But a signed message needs both the address and private key to work, doesn't it?
the master public key (xpub or mpk) can generate all public keys. an address is the hash of the public key. it's not a portion of the public key. an xpub can also be used to generate addresses. it cannot be used to derive private keys.
to spend bitcoin you need the private keys. the address is not required because it can be derived from the public key which can be derived from the private key.
note there is also such a thing as a master private key which lets you derive all private and public keys and corresponding addresses. it begins with ?prv where ? is either x,y, Y or Z, or z depending on the type of address you want to generate.
in the case of a deterministic wallet like electrum the relationship is as follows:
seed > master private key > address specific key pairs and addresses.
alternatively: seed > master private key > master public key > public keys and addresses
so if you have the seed you can derive the entire wallet.