1. Every MultiChain node has built-in wallet, but you can store you keys in external wallet. When node is started for the first time, one private key is generated and stored in the wallet. ECDSA private keys are used by MultiChain.
2. You can generate new key using getnewaddress API call, This will create new public/private key pair and store it in your wallet
3. Private key obtained using getnewaddress is stored in the wallet (wallet.dat file). You can also import private key from another wallet using importprivkey and importwallet API calls. It is always recommended to back up wallet.dat - it is the only place private keys are stored.
You can also use external wallet for storing private keys - you can call createkeypairs API to generate key pairs not stored in the wallet and manage these keys by yourself.
4. If the private key required for signing transaction is found in the wallet, MultiChain will sign transaction automatically. If not - you should specify private key explicitly in signrawtransaction API.
5. Almost. Address is a function of public key. See
https://www.multichain.com/developers/address-key-format/ for details