Each slot type is treated uniquely.
Wingull_Grass
Wingull_Surf
Wingull_Horde
Wingull_OldRod
Wingull_GoodRod
etc
All count as 'unique' and thus count towards the dexnav limit.
Relevant source code. Count up the unique pokemon per slot type (grass, old, surf, good, etc), then add up all the counts. You're safe if that count is <= 18