Why keys generated in Bitcoin Core mismatch that from online generators despite using the same seed?
I want to know why the two tools are giving different results


Bitcoin Core uses hardened derivation to derive child private keys from the master private key. You can check the embedded link for more details, but in summary it means that the software uses parent private keys within the hash function to generate child private keys. This compares to non-hardened derivation which uses parent public keys in the hash function. Since Bitcoin Core uses hardened derivation while the online tool that you mentioned uses non-hardened derivation (and also different paths), there is a natural mismatch in the keys generated by the two of them.

Bitcoin Core generates private keys using the hierarchical deterministic key generation using the path m/0'/0'/k' where k is the kth key generated from the master private key. Most wallets use the path m/44'/0'/0'/0/k for generating the kth receiving key.


  Bitcoin Core generates its private master key from hdseed? And if so, is that operation reversible?


HD seed is used to generate the master private key using a hash function. So the operation is only one way and cannot work the other way.


  Is the way in which I am generating the hdseed from the mnemonic correct?


It looks to be correct but on other aspect, the mnemonic that you provided in the question is not valid (I'm unsure if it was intentional) as the checksum does not match up with the entropy.