Hopefully my advice will be of some use being a current Marth mainer and previously having Zelda as my secondary.
Fighting Marth definitely hinges upon stage selection when using Zelda. You want as many obstacles between you and him as possible. Din's Fire is good against Marth as long as he can't reach you. A stage I might suggest would be Green Greens. I am currently developing a strategy for this stage with Ness, but some of the techniques Ness has can also be used for Zelda.
Now, the blocks definitely are to your advantage. You can attack past them and can use Din's Fire to detonate bombs--use this to your advantage. Each explosion deals around 20-40% damage and you can KO Marth with your u-air around 80%. Here's where the platforms come into play. When Marth is at or near that special percentage you want to pressure him onto a platform. Given this chance, u-air. Early kills are the best and this is one of the few times you want to be aggressive.
Otherwise, rely on your opponent's mistakes and--DO NOT SHIELD TOO MUCH. NEVER EVER DO THIS AGAINST A GOOD MARTH. ANY DECENT MARTH WILL TAKE ADVANTAGE OF YOUR OVERUSED SHIELDING AND THROW SHIELDBREAKERS INTO THE MIX. <--That needed to be in all caps.
Nothing is more spirit-breaking than having your shield broken, getting taunted and THEN receiving a fully charged and perfectly tipped shieldbreaker. This will KO at around 40% so you have nearly no chance. Believe me, I've done this on people who shield too much. Always keep a close eye on your shield and almost never take to the air. If you feel brave enough to attempt to gimp Marth (which is by no means easy), use your n-air to trap him and then drag him diagonally downward. Do this especially after he uses his second jump, and if he Dolphin Blades you to get a hit in before he dies, wall-tech so you don't get stage spiked, and recover.
All right, just a few more things. Use your jab or f-tilt to push Marth away if he gets too close, shieldgrab when you can but don't go for grabs on their own. U-tilt if your upsmash gets stale and/or if the Marth is DIing out of your multi hits as this will kill at about the same percentage.
Never ever play against a level 9. They're horrible. Here are some differences between real humans and level 9's. Level 9's do not recover well, are easy to gimp, do not use current metagame strategies, and create bad habits when you play them. Not so for real human Marths.
If you want to become better at fighting Marths, play some online or something. If you want to play me PM me and we can set up a time. FC is to the left.