The DM controls the narrative, not the rules
Random encounter during a long rest, with a watch, is a very common situation. What is the correct way to resolve it?
The “correct” way depends on the table expectations and the genre you playing, not the game mechanics. To an extent, the DM can make sleeping in the wilderness as dangerous as she wants to. The 5e puts aside the mechanical approach to stealth, leaving it all to the DM almost completely. You can find the respective Sage Advice on stealth in this podcast.
As a DM, think about decisions the players could make and consequences they should get as a result:
- Is (not) being on watch a no-brainer? What are cons and pros?
- Can players make meaningful decisions? Didn’t they lack agency?
- Do they have fun?
The next paragraph is analysing the ambush from the players’ perspective.
What was the point of the watch if it didn’t prevent the ambush?
The very point of staying on watch is to be able to wake up the teammates before the danger busts in. If the only advantage of the watch is the chance of the watcher (not) being Surprised, the watch itself becomes meaningless.
It’s a good idea to give a chance of spotting the enemy beforehand. However, rolling for every bullywug and compare with the passive score is the antipattern known as “rolling to failure”. The rules suggest using a Group check instead. It still requires a lot of checks for NPCs, which isn’t considered a good practice. The game is a story about player characters, not about NPCs.
There is a better alternative. Ask for a Wisdom (Perception) check from the player and compare it with the passive Dexterity (Stealth) score of the bullywugs. If he succeeds, let him spot the enemy far enough to be prepared. If he fails, the danger busts in – all the teammates are asleep and unconscious. The watcher being (not) Surprised makes little difference in this case.