Creating a multisig wallet with bcoin and receiving transactions
There may be a few misunderstandings around BIP32/BIP44 key derivation and bcoin wallet usage in particular. I re-wrote your script below to demonstrate how to use bcoin multisig wallets and manually derive multisig P2SH addresses from keys. If you run it, you should see all three output addresses are identical.

Here are a few things you need to know for this script to work:


To create a bcoin wallet from an xpub you must initialize the wallet as watch-only. Otherwise the account-key option is ignored, and a fresh master private key is generated for the wallet.
The public keys used in multisig scripts must be derived from the xpub (see BIP32 and BIP44). In this case, you need to derive the branch key (0=receive, 1=change)  and then from there derive the index key (0 in this case, incremented every time you need a new receive address)


Let me know if you have any other questions about bcoin! 

'use strict';

const {WalletDB, HDPublicKey, Script} = require('bcoin');

const wdb = new WalletDB({
  network: 'testnet'
});

const key1 = 'tpubDCe8iQEHFMvcm9WZsYZEd8h9dNvoDidS3y9EVkDzZZr59NcNF2n8ec' +
             'fZWQkttDp6PWujaCUcXrptSoTKUuYjXp8fMKsz3wJvYpnpxsMQUbD';

const key2 = 'tpubDDQHqrK6Xj7A9tfW2zkiZiBPs475QJ8EQ5obViboBxgA1BG5Ai1BnP' +
             'qBWKTVf6ecEi8XoKK9WQP7GK5jYgdjaoegqBH1EvhVCx2PLc3Zgru';

(async() =&gt; {
  await wdb.open();

  // Create two watch-only multisig wallets
  const wallet1 = await wdb.create({
    m: 2,
    n: 2,
    watchOnly: true,
    accountKey: key1
  });

  const wallet2 = await wdb.create({
    m: 2,
    n: 2,
    watchOnly: true,
    accountKey: key2
  });

  // Add xpubs to each other's wallet's default account
  await wallet1.addSharedKey('default', key2);
  await wallet2.addSharedKey('default', key1);

  // Get receive address index=0 from each wallet
  const addr1 = await wallet1.receiveAddress();
  const addr2 = await wallet2.receiveAddress();

  // They will be the same
  console.log(addr1.toBase58('testnet'));
  console.log(addr2.toBase58('testnet'));

  // Now do it all manually...

  // Create HDPublicKey objects from xpubs
  const xpub1 = HDPublicKey.fromBase58(key1);
  const xpub2 = HDPublicKey.fromBase58(key2);

  // Derive public keys for each xpub (branch=0, index=0)
  const pubKey1 = xpub1.derive(0).derive(0);
  const pubKey2 = xpub2.derive(0).derive(0);

  // Construct multisig script with 2 pubkeys
  const script = Script.fromMultisig(
    2,
    2,
    [pubKey1.publicKey, pubKey2.publicKey]);

  // Create P2SH address from script
  const addr3 = script.getAddress().toString('testnet');

  // Will match the first two results
  console.log(addr3);
})();