Let's say I have a Master Public Key (MPK) and have a derived some addresses from it.
How can I check later if a given address was derived from my MPK?
No, except by exhaustively iterating the whole derivation tree below the master.
After I generate the Master-wallet I use the MPK to generate the sub-wallet and the fingerprint and chaincode seems to point to the right master-wallet. I tried using the salt (brain-wallet style) to generate the sub-wallets and this did not match up to the fingerprint or the chain code. hope this works
That's not possible with an address only. You need the exact path to the address to generate it. Also make sure what kind of MPK you have, a BIP32 vs BIP44.