HD wallet lost my private keys? I just had a computer crash, and when I restored the computer I upgraded from I think Bitcoin 0.17 to Bitcoin 0.19.1. The wallet was gone, so I restored an old copy of the wallet. It's an HD wallet.

When the blockchain was synced, I put in the wallet in the proper folder, but the latest incoming transaction was not displayed. I generated several new addresses, but none of them had the latest transaction. I am sure it's the same wallet because it's got all the same transactions except the last one.

I then downloaded Bitcoin 0.17, and started generating new addresses starting with 3. The addresses were completely different, and had no overlap to the addresses generated with 0.19.1 from the same wallet.dat file.

I thought the point of a HD wallet was that I only needed to back it up once?

Any help is appreciated. The HD wallet issue might affect many users, many might think they are backed up because they use HD wallets. Best of all is that someone proves me wrong.
You can try this, close core and temporarily add these to your config file in the data directory (create a bitcoin.conf file if you didn't have one).
Code:

addresstype=p2sh-segwit

changetype=p2sh-segwit

keypool=5000

(delete them later if this didn't worked)
That will force your wallet to create 4000 more "P2SH Wrapped SegWit" receiving and change addresses to your wallet's keypool.

Then open Bitcoin core, open console (Window->Console), and type getaddressinfo '3your-missing-addressxxxxxxxx'
If the value of "ismine" is "true", you've restored that address and it's beyond the default keypool (1000 receiving/change).

This worked. Solution found here:
https://bitcointalk.org/index.php?topic=5244862.msg54344316#msg54344316