This isn't a complete answer but I might be able to point you in the right direction:

It seems like you have:

    CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)

So you're taking a [CScript][1]  as a parameter. Some additional relevant links.  I think you would either use that to create multiple outputs, or you would use    

    txNew[vout[1]];

 - https://en.bitcoin.it/wiki/Transactions#general_format_.28inside_a_block.29_of_each_output_of_a_transaction_-_Txout

 - https://en.bitcoin.it/wiki/Script

 - https://dev.visucore.com/bitcoin/doxygen/script_8cpp.html

 - https://dev.visucore.com/bitcoin/doxygen/class_c_transaction.html
(and follow the links to CTxIn/CTxOut from there

Also see how they do it here:
 - https://dev.visucore.com/bitcoin/doxygen/miner__tests_8cpp_source.html

  [1]: https://dev.visucore.com/bitcoin/doxygen/script_8h.html