I have transferred some ERC777 tokens to an ERC20 Ethereum account on my Ledger wallet. The transaction was successful and confirmed by etherscan. However, I cannot find the tokens in my Ledger Ethereum account. Although they said ERC777 is compatible to ERC20, but it does not show up. However, when I log into the same address using MEW, it showed that the token is there. Can anyone advise how to recover the ERC777 tokens?
Welcome! Some good news - based on what you've described, it does not sound like the tokens are lost. We'll try to give a quick explanation, and then go into a bit more detail.
If you can see the ERC777s in MEW, that means they're in your account/address, no matter whether you usually access your funds through a Ledger or otherwise. The most likely explanation is that Ledger does not display the balance of every token by default - they have a preset list of supported tokens which can be searched here. Again, not showing up on this list doesn't mean the funds are lost, just that you can't see them on the Ledger.
You'll need to use a different wallet (such as MEW or MetaMask) if you would still like to transfer them. (You can access your Ledger through either MEW or MetaMask - it is not advisable to extract the private key in order to import the account.) Bear in mind that if you transfer them to another address that you access through the Ledger, you still won't be able to see them - you'd need to transfer to an address that you plan on accessing through an interface that either recognizes the token (like you say that MEW did), or that lets you import ERC20-compatible tokens (like MetaMask does).
When you own tokens, it doesn't really look like having cash in your wallet. Somewhere out there in the wild of the Ethereum blockchain there is a token contract, and that contract keeps a ledger of all of the addresses that own tokens. For example, if you hold USDT, that means that in the USDT token contract there is something that records your address, and your balance of USDT. There isn't anything "stored" in your address. When MetaMask, MEW, or even Ledger show a token balance, it's not because there's something in your address that shows your balance, it's because they went and checked known contracts to see if you have a balance there by checking against your address on them, and then supplied you with the information if you do.
Certain providers (Etherscan comes to mind, though I suspect MEW and MyCrypto are also in this category) keep very comprehensive lists of roughly every token they can discover. Etherscan is particularly useful since you don't even need to login. If you want to see what tokens you (or anyone else, for that matter - these are two of Vitalik's wallets) have at a certain address, you can enter it there, and look at the drop-down token menu. Others, like MetaMask, allow you to import assets by providing their contract address, which MetaMask then goes and checks for your balance.
Others, like Ledger, only support certain assets. There are various reasons why a provider may do this. The simplest is that it lets them curate a list of well-known and highly used assets, reducing the chances of a user accidentally falling into a clone or scam token. This means that outside a specific list of whitelisted assets, Ledger won't tell you if you have a balance of other tokens or not - it's not going to look at those contracts at all to see if you have a balance or not.
That doesn't mean you don't have a balance in some other token, of course. It just means anytime you ask Ledger, Ledger will respond with "I can neither confirm nor deny if you have a balance of that token" (or actually just not respond at all).
What can you do? You already are most of the way to a solution yourself. You don't have to access your Ledger account through the Ledger interface. There are other services that allow you to connect a Ledger, and still have the security of the Ledger (by having all private key operations occur inside the hardware wallet - your keys won't touch your computer). You mentioned being able to see your ERC777 token in MEW, I assume you connected MEW to your Ledger. MyCrypto and MetaMask also have Ledger support. If you would like to interact with the tokens, simply connect the Ledger to a provider that either recognizes the token (MEW, probably MyCrypto), or lets you import it using the contract address (MetaMask), and you should be able to interact with the tokens regularly. (For MetaMask you will need to know the contract address of the token (you should be able to find it on Etherscan using its symbol), and click on "assets", then "Add Token", then "Custom Token", and then put in the contract address.)
I hope that's helpful!