a) A new block is created at more-or-less regular time intervals, based on the target-block-time value in the blockchain parameters.
b) Block forks can occur if two nodes create a block at the same time. This is why target-block-time should not be set too low. Block forks are not directly related to transaction volumes.
c) Yes, every MultiChain node has a full copy of the entire blockchain.
d) You need a wallet in MultiChain, even for non-financial uses, because a wallet contains the private keys that belong to that node. Those keys are used for identification when connecting peer-to-peer, and to sign any transaction which is created by that node. (In a permissioned blockchain, without that signature, the transaction would not be permitted.)
e) There is no API that returns all transactions for a given asset. This is the sort of thing you would need a blockchain explorer for.
f) If a node crashes, simply restart multichaind for that node. If you're concerned about data loss, you can always back up the wallet.dat file for that node.
g) If all nodes crash, and for some reason all their data is lost, then that's the end of that. So you could back up the entire ~/.multichain/[chain-name]/ directory for one node. That would also include that node's wallet.dat file.
h) The preparelockunspent call is an important step in the creation of the transaction, and signrawtransaction is required to have the transaction signed ready for sending. For this question it's probably worth reading some documentation about bitcoin to understand its transaction and signature model, on which MultiChain is based.