When the foam deteriorates above the headliner, the glue method doesn't work very well because there is nothing to glue the headliner to. A trim shop replaced my headliner for about $125 some years back, so $300-400 sounds a little high. I have had really good results with the screw in pins available at auto parts stores on the "HELP!" rack. The job done by the auto trim shop lasted about 10 years and the car wasn't worth a second headliner repair. Therefore, I went the route of the screw-in pins. It doesn't look bad and holds up the headliner.
BTW, I had a 1965 Rambler Classic that had a solid, one piece fiberglass panel for the headliner. It was quite satisfactory. I've never understood why cars use the upholstered headliner instead of the way it was done on the Rambler.