Just take it one step at a time and work backwards. You are getting wrong encounters while surfing in level 1 of cerulean cave right? Lets look at the function for wild mons on that level.
Make sure this terminates in db $00. If so, then something else is the problem. What actually calls or points to DungeonMons1? Let's do a search.
We find that there is only one reference. It's a 2-byte pointer in the function WildDataPointers: in the file data/wild_mons.asm. There's even some comments in here that describe how the individual encounter files work. DungeonMons1 is on line 230, so its position in the pointer list is 228 in decimal or $E4 in hex. Checking map_constants.asm shows that this lines right up with level 1 of cerulean cave, which is map $E4.
Now let's search for what refers to WildDataPointers. There's items.asm, but that's for locations on the pokedex map. Not useful. There's engine/overworld/wild_mons.asm as well, and that is very useful. There's a single function called LoadWildData.
The first thing it does is get the current map number, $E4. It then traverses WildDataPointers so that register HL holds the location of the E4th entry on the list, DungeonMons1. Then it grabs the first byte of DungeonMons1 into register A, $0A. Since this is not zero, there is grass/cave encounter data that gets copied into a buffer and the value in register A becomes the encounter rate in wGrassRate. There are exactly 20 bytes (hex $14) that get copied into this buffer, so encounter lists must all be the same size and format. After the grass encounter list it gets the next byte of DungeonMons1 into register A, $00. Since this is zero, there is no encounter data for surfing on water and wWaterRate is set to $00. The function then returns. If the number in register A was not $00, then obviously it would try to load data into the buffer called wWaterMons and you'd have a non-zero number in wWaterRate.
Final thing to check is engine/battle/wild_encounters.asm. There's a function there called TryDoWildEncounter. This handles all the checks of doing a wild encounter. Study the comments in this well to understand the circumstances where a wild battle is even allowed