You will need the ABI. The .methods is an attribute of the contract instance, which you get by using the ABI.
If you are using ethers.js, you can use a shorthand ABI to achieve the same goal:
let abi = ["function approve(address _spender, uint256 _value) public returns (bool success)"]
let provider = ethers.getDefaultProvider('ropsten')
let contract = new ...
No your account is safe or, better, if you still have the private key of the account you are interested in, your money and your account are safe. You are definitively able to recover them using some other wallet. I use CIPHER on iOS and it is ok. On the other side, simply add a new account in metamask giving the private key when asked for it. Nothing more.
You can get your accounts back by clicking "Create Account" (once per each account).
The accounts are there, however they are not shown until you add them.
If the accounts that show up do not match what you are expecting, then you are using an incorrect seed.
Hardened child keys are the ones using apostrophes (m/44'/60'/0'). By design, hardened child keys cannot be derived from extended public keys, only from private (xprv).
To get around this, you derive the part that includes hardened children directly from your private key and leave the last non-hardened part of the path to be derived for each user.
Yes, sure, you may recover public key from your transaction using ABDK Toolkit. For this you need your transaction in raw hexadecimal format. You may again use ABDK Toolkit to convert transaction into this format.
Your particular transaction in raw format looks like this: