Marth is probably my least favorite matchup in the game right now. Not because I think it's all that bad (roughly even), but because I hate the way we have to play it.
First off, Marth should never be approaching from the air in the matchup. That's a false assumption. Marth's gameplan is centered around dash dance camping and applying pressure until you commit to something, then punishing the option you choose.. Generally with grab. Marth also LOVES to approach with running shield, which is really hard to deal with.
So to successfully play this matchup, you have to do everything you can to avoid getting grabbed. This is not the easiest thing to do, as I'm sure you know. It doesn't help that most of Link's best offensive options are fairly easy to read and punish.
Zair... Going to say this, zair shouldn't be used much in the matchup.. Mostly because Marth stays low to the ground, so you have to delay your SH to land it (allowing Marth time to get around it), and it's easy to shield and we get grabbed. The only time I will use it is when Marth is on a platform, or when there's no chance of him being close enough to punish.
Boomerang. Use it less than you would in a normal matchup. It's not useless, but riskier than we are accustomed to. Marth can run under it or running shield it and get right in your face. For this reason, I personally think a standing rang is safer/better than a sh one because it's faster and doesn't require you to give up position to use it.
Shield. NEVER shield in the neutral. Unless Marth is recovering or getting up, shield is a terrible option. Use jab jab or spot dodge/roll instead. Again, if Marth's main attack is grab, shield doesn't help you.
Grab.. This is tough because we get great follow-ups out of grab (dthrow to utilt to Bair to regrab, for one; dthrow to dair for killing, etc). But it's really risky, so only use it if you're reasonably sure it will land, or after a setup (jab jab, Bair, Nair, rang etc)
Essentially, we have to play slap fight with him, using safe, fast moves like jab jab or Bair (or well spaced fairs) until something else is safe enough to use. The important thing is not to give up position, because Marth can really pin you down quickly.
Recovery, Marth can drop down and fair you to death... It's really a guessing game, as we can stall and either go high or really low to get around it. Just don't be predictable. Covering your path with bomb, rang, and Nair is a good idea.
Edgeguarding, jump off Nair or bomb drop off the edge to hit him on the pop up are the best options I've found, if the marth can sweetspot. Also arrowing him on the way down when he's trying to recover from a big hit is a kill... Marths always try side b to throw us off, so just wait that out.
The other area that I have problems with is getting off the ledge... He'll try to wavedash back to grab or fsmash, which covers a shocking number of our options... Just keep with the mixups and try to avoid his punishes.
One other tidbit. ALWAYS DI down + away from him for a grab or Combo. It doesn't always seem to work, but it's more consistent than any other DI