Good question! We haven't yet added APIs to enable transactions to be sent from a particular address, but those are on the roadmap, since otherwise (as you note) it's difficult to isolate multiple accounts in a single node.
For now the workaround is to use the listunspent and createrawtransaction calls to manually select UTXOs (unspent transaction outputs) to be used for a new transaction. In other words, you need to create your own coin selection algorithm that filters UTXOs by their receiving address and the assets you want to send.
For a simple example of a coin selection algorithm, see the OP_RETURN_select_inputs functions in our PHP/Python OP_RETURN libraries (designed for Bitcoin Core, but MultiChain's API is compatible). You'll need to adapt this for assets and address filtering, but hopefully it's a useful start:
https://github.com/coinspark/php-OP_RETURN/blob/master/OP_RETURN.php
https://github.com/coinspark/python-OP_RETURN/blob/master/OP_RETURN.py
As I said, we intend to make this much easier in future.