Marth has to abuse a lot of Puff's flaws in order to win this matchup consistantly. I've gathered this data mainly while playing against my training-partner Earth, a resident Fox-Puff player, and through my own personal tinkering.
Puff's weight makes it hard on Marth to combo her reliably, so you usually have to win exchanges rather than making crazy zero-to-deaths. One thing that plays in Marth's favor is his sword's range and property of being a disjointed hitbox. What a disjointed hitbox means ,for those who are new to technical terms, is an attack's property of not containing a hurtbox, an area where a character will take damage. This makes them beat out moves that aren't disjointed hitboxes (Ex. Falcon dair). You can potentially wall out impatient approaches by Puff with moves such as your tilts, forward smash, jab, etc. It's easy to intercept Puff's approaches, her low air speed makes her an easy target for these moves.
Something to keep in mind is that in neutral, Marth primarily wants to stay grounded or keep an advantageous position over Puff where his hitboxes beat out hers. Grabs are very risky in this matchup due to Marth's height since Puff can simply duck under them and punish with a Rest. So, keeping a level head and steady hand is the way to go. Dashdance ftilt is better than dashdance grab a majority of the time as you aren't really risking anything by simply swiping at Puff from a distance, and you aren't playing the most aggressive. Pick your spots to go aerial as well, rising fair is AMAZING for stuffing Puff's aerials. If Puff is above you and you don't feel like using fair for some reason, jump up immediate nair is good too, but only on occasion. If you DO get a grab, you're mainly going to be playing by Puff's rules and reacting. (There is a dedicated paragraph to this topic down below.)
Once Puff gets to the "Marth Percent", the infamous event where Marth's moves slowly lose their combo potential as the opponent's percentage (and thus knockback) grows, it becomes a much more risk-and-reward type of game. You can either risk everything and throw out fsmash, or play it safe but potentially not kill with ftilt. One thing to remember is that you can dashdance faint into side-b uptilt and almost guarantee yourself a kill past 80%-ish. Pivot fsmash is also godlike in this matchup as it is a rather daunting threat on the Puff, since it can literally come out of nowhere and bop a non-suspecting Puff at 70% and kill them.
Puff's weight makes it hard on Marth to combo her reliably, so you usually have to win exchanges rather than making crazy zero-to-deaths. One thing that plays in Marth's favor is his sword's range and property of being a disjointed hitbox. What a disjointed hitbox means ,for those who are new to technical terms, is an attack's property of not containing a hurtbox, an area where a character will take damage. This makes them beat out moves that aren't disjointed hitboxes (Ex. Falcon dair). You can potentially wall out impatient approaches by Puff with moves such as your tilts, forward smash, jab, etc. It's easy to intercept Puff's approaches, her low air speed makes her an easy target for these moves.
Something to keep in mind is that in neutral, Marth primarily wants to stay grounded or keep an advantageous position over Puff where his hitboxes beat out hers. Grabs are very risky in this matchup due to Marth's height since Puff can simply duck under them and punish with a Rest. So, keeping a level head and steady hand is the way to go. Dashdance ftilt is better than dashdance grab a majority of the time as you aren't really risking anything by simply swiping at Puff from a distance, and you aren't playing the most aggressive. Pick your spots to go aerial as well, rising fair is AMAZING for stuffing Puff's aerials. If Puff is above you and you don't feel like using fair for some reason, jump up immediate nair is good too, but only on occasion. If you DO get a grab, you're mainly going to be playing by Puff's rules and reacting. (There is a dedicated paragraph to this topic down below.)
Once Puff gets to the "Marth Percent", the infamous event where Marth's moves slowly lose their combo potential as the opponent's percentage (and thus knockback) grows, it becomes a much more risk-and-reward type of game. You can either risk everything and throw out fsmash, or play it safe but potentially not kill with ftilt. One thing to remember is that you can dashdance faint into side-b uptilt and almost guarantee yourself a kill past 80%-ish. Pivot fsmash is also godlike in this matchup as it is a rather daunting threat on the Puff, since it can literally come out of nowhere and bop a non-suspecting Puff at 70% and kill them.
You aren't going to get much from attempting to go for low percent kills, the best you can get is either tipper pivot fsmash, grab to pivot fsmash (more on that later), or premptive upair near the top of the stage. Depending on your positioning on the stage, you CAN theoretically forward throw to dair off the stage if the Puff doesn't know it's coming and doesn't immediatly jump out, but that's all player-dependant metagame stuff. Same goes for down throw dair, "Mufasa Combo".
If you DO get a grab as Marth on Puff, you will be reacting a majority of the time. Get good at reacting to throw DI against floaties and pivot fsmash. At mid to high percent, Marth can fthrow or dthrow into pivot fsmash and kill, but this is all only if the opponent either DI's in or no DI. If they DI away, best you can go for is either the safer option (fair) or the more hard-hitting option (neutral b).
If you DO get a grab as Marth on Puff, you will be reacting a majority of the time. Get good at reacting to throw DI against floaties and pivot fsmash. At mid to high percent, Marth can fthrow or dthrow into pivot fsmash and kill, but this is all only if the opponent either DI's in or no DI. If they DI away, best you can go for is either the safer option (fair) or the more hard-hitting option (neutral b).
Marth can potentially have either the most glorious rest punishes or the most pathetic hits one could ever see. The most optimal two options are : 1.) Charge neutral b 2.) Tipper charged fsmash. You could also throw the opponent off by downsmash, it's especially good if the Puff isn't knowledgable on all of Marth's moves and you can catch them DI'ing up or something.
One more thing to account for is platform techchasing and just general positioning as you can't really edgeguard Puff, no character can in a sense. So long as Puff is above Marth or Marth is strategically (choosing to be there and capitalizing on it) above Puff, Puff can't do much. Keep that in mind if you are edgeguarding her, you can simply grab ledge, ledge jump, dair, and make your momentum bring you onto the stage. Simple stuff really. As for platform techchasing, you can do a neat setup at about 60%-onwards with tipper dair to tipper/almost-tipper upair, and it works wonders on stages with low ceilings. A final note is that you can be really jank and simply upsmash the above Puff, but please do this sparingly or not at all.
Stage picks are pretty-much straight forward. Avoid stages with high-ceilings, such as Dreamland, or stages that really don't let Marth capitalize on using his range to the fullest extent, such as FD. The best-to-worst stages to go to are : Yoshi's Island, Pokemon Stadium, Battlefield, Fountain of Dreams, FD, and Dreamland.