MerchantSchemaで$typeの代わりにtypeを使用します。
var MerchantSchema = new mongoose.Schema({
packages: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Package'}]
},
{
typeKey: '$type',
timestamps: { createdAt: 'created_at', updatedAt: 'updated_at'}
});
module.exports = mongoose.model('Merchant', MerchantSchema);
マーチャントドキュメント内のパッケージに対してObjectIdの配列があることを確認します。