After spending 3 hours deciphering how this mechanic works, I figured I would write up a quick guide on how to catch the weather sos exclusive Pokémon.
You'll want adrenaline orbs which are purchasable from the vendor in pokecenters, a Pokémon with Rain Dance, Sandstorm, or Hail (depending on what kind of Pokémon you want), and a Pokémon that can stall with buff/debuff moves and can easily oneshot whatever the wild Pokémon calls to help.
The Pokémon which are exclusive to weather SOS are: Castform (Rain, Hail), Goomy (Rain), Vanillite (Hail), Poliwrath/Politoed (Rain), and Gabite (Sandstorm).
First, you'll need to weaken the Pokémon to 50% or less HP. Make sure not to inflict a status like sleep or paralysis, as this stops the Pokémon from calling for help. If you're catching a hail/sandstorm Pokémon, pick an opponent that won't be killed by the weather you're using.
Next, start the weather you need. Give your Pokémon the rock item which will extend the relevant weather, available in the room next to the Malie City flea market. Finally, use an Adrenaline Orb. This will increase the wild pokemon's propensity to call for help.
Now, get comfortable. Switch to your stall/oneshot Pokémon, and wait for the wild mon to call for help. Keep knocking out whatever it calls that's not the desired rare spawn. Refresh the weather as soon as it ends, as the special Pokémon only come during their desired weather.
The chance to encounter one of the weather exclusive Pokémon seems extremely low, but don't get discouraged, this DOES work. I got Castform from a Pelipper battle in the patch of grass outside Tapu Village, and Vanillish during a Sandshrew battle in the grass right before the Pokémon League on Mount Lanakila. Make sure to look up the area your desired Pokémon is available before starting a battle.
Good luck, and happy hunting!!!