importmulti doesn't import all known permutations of the address into setWatchOnly but the -cli and -qt allow the user to request the bech32 variant. IsMine logic only goes the other direction: p2sh -> p2wpkh.
If funds are sent to the bech32 address the wallet doesn't pick up any of it.
Two ideas to fix:
- Don't and deploy descriptor wallets and
importdescriptorinstead since this is just for extreme power users and everything legacyIsMineis horrible. - Have
importmultidescriptor import the bech32 version of the address as well intosetWatchOnly
OR
Maybe the p2sh -> p2wpkh direction working is the bug and that should be disabled?