* Call preparelockunspent to create a single transaction output containing the assets you want to send.
* Use createrawtransaction to create a raw transaction, which spends that output and sends its contents to the other address (see MultiChain docs for how createrawtransaction is extended to support assets).
* Append the metadata to the raw transaction returned by createrawtransaction before calling signrawtransaction and sendrawtransaction. See the OP_RETURN_create_txn function in our PHP and Python libraries linked below - just skip the first line that calls createrawtransaction and instead set raw_txn/$raw_txn to the hexadecimal already generated by your call to createrawtransaction.
https://github.com/coinspark/php-OP_RETURN
https://github.com/coinspark/python-OP_RETURN