It’s not because of your zip code, this is an issue with Google’s geocoding service. When you upload an observation to iNat, the text description of the location comes from Google (though you can change that description later if you like). As an example, you have an observation from (44.438708, -72.906013). If I plug those coordinates into Google’s geocoding service, the top result is in Jericho:
Since Google is telling iNat this is in Jericho, that’s the information getting filled in. However, iNat does have a boundary for the city of Bolton, and this observation also knows that it’s within the boundary. That information is found on the observation page under more details about the location.
If you would like to change the text description for your observations, you can batch edit and change many at once. Go to https://www.inaturalist.org/observations/flask, choose Batch edit, and select the ones you want to edit. Then choose Edit Selected and under Batch Operations, fill in the text you want, e.g. Bolton, VT. Then Apply, then Save All.
You can also try reporting the issue to Google Maps, though I don’t personally have any experience with how well this works.