Start with the roof rack, and check the well nuts. They're rubber expanding plugs, and the rubber can sometimes tear. You can get replacements. Check the windshield all around. It doesn't take much to cause a big leak, especially when you're driving. Windshield leaks are pretty common. The urethane adhesive bead loses its grip on the metal, and then the metal rusts, or maybe the rust starts first, but anyway the gap grows, and you have a leak. Finally check for little cracks near the rear corners of the edge of the roof around the rain gutter, and for rust spots and cracks near the forward edge. Because the headliner is made of stiff cardboard or something like it, and shaped like an inverted bowl, whatever leaks on top of it will seek the edges and run to the lowest point. The fact that the leak appears at the front does not necessarily mean it originated there.
A bad windshield leak can't really be fixed well without taking off the windshield, but you can sometimes get sealant in to stop it. Don't use silicone. Get something made for the purpose.
And of course, if you have to you can take the headliner out, and you can find the source right away.