It depends on how you layout your docks, and how you plan on having the groups get to them. I like the idea of a ship sending out longboats full of Group B, while a longboat with Group A sneaks around from the other side to another pier. I'd have the attack happen at night, so that dim light will cause disadvantage to perception checks to notice Group A. If you have 3 piers, Group B, could move to land on two adjacent ones, while Group A lands at the third a few rounds into the combat. This forces the party to split between the two docks, since they have to repel from both.
Instead of waves knocking people into the water, I'd make random spots slick, so that moving into those spaces requires a Dex/Acrobatics DC: 10 check to prevent slipping (Dex save DC:10, fail fall into water, save drop prone instead).
Instead of a giant throwing rocks (which would be more useful attacking the defenders), I'd have some of the invaders throwing flaming oil from a catapult on the ship, creating random 5' areas that have to be avoided or take damage (per PHB), limiting movement and possibly hitting PCs/NPCs.
I'd take advantage of Passive skills for Group A. Each round, I'd roll Stealth for Group A, revealing their presence to anyone whose passive perception is high enough. Additionally, I'd roll Deception (probably with advantage) for Group B, revealing the distraction to anyone whose passive insight is high enough. If any player takes an action to figure things out, they get to make a check against the roll for the round as well. If you call for checks, it will make players suspicious even if they fail.
Instead of waves knocking people into the water, I'd make random spots slick, so that moving into those spaces requires a Dex/Acrobatics DC: 10 check to prevent slipping (Dex save DC:10, fail fall into water, save drop prone instead).
Instead of a giant throwing rocks (which would be more useful attacking the defenders), I'd have some of the invaders throwing flaming oil from a catapult on the ship, creating random 5' areas that have to be avoided or take damage (per PHB), limiting movement and possibly hitting PCs/NPCs.
I'd take advantage of Passive skills for Group A. Each round, I'd roll Stealth for Group A, revealing their presence to anyone whose passive perception is high enough. Additionally, I'd roll Deception (probably with advantage) for Group B, revealing the distraction to anyone whose passive insight is high enough. If any player takes an action to figure things out, they get to make a check against the roll for the round as well. If you call for checks, it will make players suspicious even if they fail.