I think the Garmin Swim watch is not accurate in counting strokes and pool length. Comparing to PoolMate Live of Swimovate (I have such one too), I would say it is highly inaccurate.
The PoolMate watch can miss a pool length on a low pace, especially for backstrokes. It accurately calculates the number of strokes and number of pool length on higher paces.
The Garmin Swim watch also can miss a pool length on a low pace. However, it often adds pool length. For example, recently it counted 6 pool length (150 m) instead of actual 4 (100 m) when I swam with backstrokes. Additionally, it does not count strokes properly when pace is sufficiently high. Sometimes the difference gets up to 200%. Needless to say (but less important), sometimes it fails to detect stroke type. It almost never detects butterfly strokes.
My general impression is that the watch does not recognize strokes but tries to estimate the stroke count.
I think that instead of detecting the stroke type, the watch should allow to select one. I suppose if the stroke type is known, then it is easier to detect individual strokes.
Additionally, possibility to correct mistakes in the watch would be very nice.
Meanwhile, I deal with this by downloading the FIT files from Garmin Connects, fixing them with a program I wrote and uploading them back.