If the hard panel under the fabric isn't broken, no need to throw the whole thing away.
Pull the panel & remove the fabric. Under that is 1/8" foam. That's what the fabric was originally bonded to, but the bond has deteriorated. Use a piece of 80 grit to lightly sand off that foam. Easy to do.
Then you'll need some headliner material with the foam on it. Some upholstery suppliers still call it 'Nyfoam'. That material is 54" wide, but can be stretched some.
Lay the fabric over the panel, with it about 3+ inches larger than the panel. Fold the material in 1/2 over itself & spray some spray glue (3M '90') on both exposed 1/2's. Do 2 coats, the first being a very light one. This is so that glue creates a bit of a 'skin', which stops the 2nd. coat of glue from soaking through the material.
Let dry between coatings of glue.
Fold the material back over the panel, then beginning from the center out, smooth the fabric down to the panel. The front corners where the visors go are usually a PITA, but because the glue was allowed to dry before bonding, a quick snap of the wrist while holding the edge of the fabric, will release it's bond. Repeat for the other side.
Flip the headliner over and glue the excess. Then wrap that over to hide the edges. Do not cut the fabric off with the edge of the panel. Don't worry about any bulk of the fabric or folds on the backside. Once you have all that outer edge done, go back with a razor blade and cut off that stuff.
From the backside, cut out all the required holes. Re-install back into the truck.