There really isn't much I can do to help you without team specifics, but having both of your leads be frail pokemon with rock slide weaknesses is a bit of a red flag. I'll share my own tailwind team instead.
Talonflame
Item: Eject Button
Ability: Gale Wings
Jolly 4hp/252atk/252spd
-Will o' Wisp
-Flare Blitz
-Tailwind
-Taunt
Talonflame is doubtlessly one of the most reliable tailwind setters in the entire game, since fake out is pretty much the only way to stop it from going up. Will o wisp neuters physical threats that could hurt your other pokemon, and taunt protects the others from status. I chose flare blitz as my primary offensive option over flying type move because a fire type STAB move has coverage that interacts better with the rest of the team. The problem with Talonflame is that it can't actually benefit from tailwind as well as the rest of the team. Sometimes it just takes a rock slide and goes down after setting tailwind, but eject button is there in increase the amount of valuable tailwind time that goes to my other offensive threats.
Tapu Bulu
Item: Shell Bell
Ability: Grassy Surge
Adamant 4hp/252atk/252spd
-Wood Hammer
-Rock Slide
-Superpower
-Protect
Tapu Bulu is my primary beatstick, and its usual job is to spam its mind-bogglingly powerful wood hammer against anything that takes neutral damage or better from grass. Bulu's terrain-boosted wood hammer is so strong that even Kartana's leaf blade is only a little more than 60% as powerful as it. Protect buys time for Talonflame to set up tailwind, and rock slide and superpower provide coverage against types that resist grass. Shell bell is a little questionable as an item choice, to be honest, especially since Bulu holds an assault vest so well on sets that don't need protect. Still, it mitigates recoil and gives it the potential to squeeze off an extra wood hammer.
Primarina
Item: Choice Specs
Ability: Torrent
Modest 4hp/252spatk/252spd
-Surf
-Dazzling Gleam
-Energy Ball
-Ice Beam
If Tapu Bulu is my main physical weapon, then Primarina is my main special weapon. The choice set means it won't lead and is your go-to when Talonflame leaves or goes down. Primarina actually has one of the highest special attack stats among non-mega water types legal in the battle tree, so it's an excellent choice with tailwind support. Moveset is a typical STAB+coverage setup, but I've chosen surf over sparkling aria in the event of stumbling across the occasional soundproof pokemon. Substitute only appears on a handful of pokemon. If Talonflame switches out with eject button, I sometimes sacrifice it to change Primarina's move.
Nihilego
Item: Focus Sash
Ability: Beast Boost
Timid 4hp/252spatk/252spd
-Power Gem
-Sludge Wave
-Thunderbolt
-Protect
Nihilego is largely a filler addition to the fire/water/grass core that I already have, though poison resistance is a must for this slot. It also has great speed even outside of tailwind, which lessens my reliance on the speed boost. The rock type coverage move is also important against flying types Bulu has trouble with in case Primarina gets locked into a move other than ice beam. Being a special attacker also balances out the attack types on my team. Focus sash allows it to take an earthquake and counterattack, though I've also considered air balloon. Sludge wave might get swapped for sludge bomb to avoid friendly fire.
I'm not trying to get you to copy my team exactly, especially since it might not fit your playstyle. What is important is that I want you to understand the principles of balance, flexibility, and coverage. Balance means the distribution of duties among your team members to avoid putting too much pressure on an individual. Flexibility allows you to change your game plan in the face of enemy disruption. Come with a plan, but don't go down when it gets foiled. Coverage is self-explanatory, but you have to think about certain types or pokemon when building your team. My team is far from perfect (it still needs a few pieces to be VGC ready), but it has gotten me to 30 wins and counting in super doubles.