It's mostly shambled together stuff but I have a wireshark plugin that works pretty good for the few pieces it supports
https://github.com/mjsir911/GarminBLE
I started this project with no bluetooth experience either, it's definitely been a lot of learning.
Let me know if you are interested in continuing / working on this, might give me a nudge to get back on it.
https://support.garmin.com/en-GB/?faq=Ht3ZP52Kju075uKvqTqu99...
[1] https://www8.garmin.com/manuals/webhelp/vivoactive3/Shared/G...
They are all perfectly waterproof. (Current owner of a forerunner 945)
The sync protocol mostly just sends all the files to the Garmin server so there is not a lot of logic locally. I no longer have any interest in the topic but if I were to restart, I'd focus on the "Explore" protocol which seems to allow upload/download of waypoints/tracks which is all that I wanted from the device in the first place.
Open your protocols and you'll get lots of nerdy cheerleaders for your devices.