Wavedash out of shield when she hits your shield with spaced attacks and jump and hit her. Do safe shffl aerials and she has no opening to hit you if you whiff. Dash dance and bait her out, knowing the range of her bair, and do dash-shield-SH aerials and keep an in-place or retreating momentum. When she hits the ground, the answer is always grab. In fact, those are pretty much the only two moves you should be using, fair and grab, with dtilt and nair used when it's absolutely necessary (dtilt for crouching, nair for approaching).
Stay away from the edge and maintain center stage. The best you can do against her by the edge is bait out her side-B and punish, but if you get hit you're off the edge and backturned.
Once you've poked her to about 65%-90%, only go for grabs and do the kill combos described in detail in the first post of the Kadano's Perfect Marth Class thread. If she goes higher, side-B utilt is your goto combo. Against most characters you can just do damage, hit them off the stage and convert the edgeguard to a kill, but it is completely pointless to just try and hit Puff until she dies or you get a lucky f-smash, as she'll just go off the stage where you can't edgeguard her.