...there is not one single recording of the following headings: 1, 2, 3, 4, 6, 7, 8, 352, 353, 354, 356, 357, 358, 359. Meaning there's a gap from 352 - 8 where the only possible values are 355, 0, and 5.
So if viewing your data as "bins", one would expect the 355, 0, and 5 bins to have about 4 or 5x as many samples as other nearby directions (and maybe the 351 and 9 bins to have 2 or 3x as many). Do you see that?
This doesn't seem that bad, as the spec sheet of my Vantage Vue says "resolution" of 1 deg but an "accuracy" of 3 deg, and since the gaps you mention (351,355), (355,0), (0,5), and (5,9) are 4, 5, 5, and 4 deg wide, they're only mis-reporting when the "true" value is in those gaps by 2 or 2.5 deg at most.
In other words, if I'm understanding what you all have discovered, the gap in the every-2.5-s STRMON raw-byte-values-converted-to-degrees is (351,9), and with Davis' apparent averaging of consecutive values or however they're getting around this, the gaps are smaller, (though the effective update rate becomes 5 s).
(note, just averaging doesn't quite explain this, as there would be the occasional time when consecutive readings jumped from say 350 to 16 and the average would be 3. So they may just be averaging and rounding to the nearest of 355, 0, 5.)