Okay, I'm not the best at competetive, but I'll try to help anyways. First, let's start with a rain team. Rain teams should have a rain setter. A common one is Pelliper. You should also try to have a rain sweeper, such as kingdra. As a rain team, you will have problems with grass and electric type teams. What you should try to do is simple: get a water and ground type like quagsire. Quagsire is one of the better Pokemon out there for walling. Plus electric attacks do nothing on it. Also think about putting something like Scizor on because fire moves are weakened.
Next we have sun teams. You need a setter. Usually you should go with a Pokemon that has drought, but you can put on sunny day. Next, you need a fire type. One of the best fire types is cinderace, so you could try it out. Keep in mind though, since cinderace is mainly used with libero, you should be careful. However, you could fire off a stab-sun boosted Pyro-ball, which would be powerful. Also think about putting a Pokemon on that can learn like solar beam or blade, as those will be one turn moves and you will absolutely cripple your opponents. You can also pack rock or ground types since water moves are weakened.
Now, we go over hail teams (which I'm not sure even exist). Ummm, well I don't really know about this, but I guess you should pack something with snow warning or the move hail, something with blizzard and something with snow cloak. Like I said, I'm not really sure about this type of team.
Finally, we have Sandstorm teams. Get a Pokemon with sand stream. You should put on a rock type because of a special boost. You can get a Pokemon with sand veil which certainly will help you. Also, no matter what you do, put exadrill on your team. It is a monster.
So, I hope I helped!