External GFCI Won't Reset
There are really only two likely possibilities here:

Broken GFCI

Repeated trips, dirt, water damage, insects, loose connections leading to arcing - there are a ton of reasons why a complex electronic device like a GFCI can fail. They are designed to fail safe when possible - i.e., off rather than on. If the GFCI has truly failed, the only fix is to replace it.
If you have to replace it, you may want to consider an inside location so that the outside receptacle is a simple receptacle and therefore less likely to fail due to weather and other &quot;outside&quot; problems. One possibility is to replace the switch with a GFCI switch like this one:

and then you can use a simple weather-resistant receptacle outside. Whatever you do, make sure you have a good in-use cover over the receptacle.

Water

It is quite possible that water got into the GFCI/receptacle in a way that it causes a ground-fault (which is why the GFCI won't reset) and doesn't quickly dry out. If that's the case, you can either remove it to dry it out or just wait a day or two. If after it dries out, everything works properly (TEST/RESET work and power only when the GFCI is not tested or tripped) then you are fine. In other words, the GFCI may simply be doing exactly what it is supposed to be doing.