The water of course has to come from higher up than the leak. Water can travel a long distance running on the inside of the skin... but basically you have to start at the top and look for any place water can get in. Anything that is previously sealed, like your roof top items mentioned, is the best place to start, as the most common issues are sealant drying up and cracking. Actual body seam leaks are possible too... you just have to look.
You'll only know you've got it for sure when the leak stops...