Why importing private key from one HD wallet to another doesn't restore the balance?
do all HD wallets generate public keys from private in the same way?


No, the "derivation path" is an important additional piece of information. You should be prompted for this when importing / sweeping a private-key

See Default derivation paths