How to generate specific private keys from 12-word backup and wallet address? A single seed can lead to billions of addresses. Some wallets are unable to scan and find all used addresses.

Is it a way to infer the private key from 12-word backup and wallet ID / (public key).

It seems the only way to restore my balance is based on private key.
Mnemonic seeds are based on the BIP39 (seeds) and BIP44 (accounts/multiple currencies).

When deriving addresses, one uses a derivation path to get to a specific addresses. The default paths are defined in the BIP specs, but some wallets may use different ones due to an error or intentionally (for instance, Ledger's Vertcoin derivation uses Monero's derivation path due to a coding error).

You can use tools such as Ian Coleman's BIP39 tool (preferably offline) to play around with your seed and derivation paths until you see your addresses. The tool has preloaded the common paths, so you should usually be able to access your wallet pretty easily, unless you were using an extremely unusual client.

Many wallets also publish their derivation paths in their support pages, and you could pull your original wallet's path from there.

Wallets such as Electrum will also let you import a seed and specify the derivation path, saving you from having to generate and import individual keys.

As long as your seed was generated by a wallet that complies with BIP44, and you are importing it into another wallet that also complies with BIP44, you should be able to recover all your keys with no additional work.