Steps to reproduce:

* Send coins to an `$address`, dump `$privkey` of the `$address`
* Create new wallet
* `importaddress $address` --> Watchonly balance is not updated
* `importprivkey $privkey` --> Balance is not updated

Needs a restart to get fixed. See also #11477 
{
    //  -changetype is specified, always use that change type.
    if (change_type) {
        return *change_type;
    }
    // if m_default_address_type is legacy, use legacy address as change.
    if (m_default_address_type == OutputType::LEGACY) {
        return OutputType::LEGACY;
    }
    bool any_tr{false};
    bool any_wpkh{false};
    bool any_sh{false};
    bool any_pkh{false};
    for (const auto& recipient : vecSend) {
        std::vector<std::vector<uint8_t>> dummy;
        const TxoutType type{Solver(recipient.scriptPubKey, dummy)};
        if (type == TxoutType::WITNESS_V1_TAPROOT) {
            any_tr = true;
        } else if (type == TxoutType::WITNESS_V0_KEYHASH) {
            any_wpkh = true;
        } else if (type == TxoutType::SCRIPTHASH) {
            any_sh = true;