in general, every ring you create has to start and end at the same point.
just for example, the ring that defines your last polygon does:
<Polygon>
<tessellate>0</tessellate>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-86.89382306779513,32.9732802089964,0 -86.8902795219107,32.9765431765358,0 -86.89136705263351,32.97938650129463,0 -86.89568252063464,32.9757499880925,0 -86.89788444711589,32.97541506754887,0 -86.90015219694,32.97652519866929,0 -86.90046365118788,32.97652443810644,0 -86.90178341014168,32.97458467820024,0 -86.9036253204888,32.97413016949104,0 -86.90480323995054,32.97311373952528,0 -86.90543711036977,32.97179690401453,0 -86.90537075415261,32.96910048670911,0 -86.90620792457659,32.96849170366068,0 -86.90807669162091,32.96889239080826,0 -86.90875580731119,32.96858359245651,0 -86.90871507391493,32.96687178025292,0 -86.90890155690481,32.96640719661985,0 -86.90904960565754,32.96623046059332,0 -86.89382306779513,32.9732802089964,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
… but the ring that defines your second-to-last polygon does not:
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-86.91291628630846,32.96467476159516,0 -86.91445374533173,32.96600970134412,0 -86.91714456215736,32.96699613863436,0 -86.92249270433906,32.96619630094196,0 -86.92534503233307,32.96777990306182,0 -86.92565524105304,32.96839706505379,0 -86.92536411128657,32.97065772976696,0 -86.92178812515567,32.97414177992663,0 -86.92048618828088,32.97667865101299,0 -86.92115589823213,32.97784710157567,0 -86.92538800688027,32.97416633507397,0 -86.92936486187639,32.97165770469547,0 -86.93161858223144,32.97078334735811,0 -86.93594404648091,32.97051836045558,0 -86.9376840050647,32.97291026588753,0 -86.94524729877917,32.96951828721729,0 -86.94890875107318,32.96872721169574,0 -86.96061753543674,32.96682588223614,0 -86.9604826938843,32.96559307245908,0 -86.95953338140089,32.96441568641863,0 -86.95839398663679,32.9646042119096,0 -86.95452509789423,32.96696548788915,0 -86.94097563193779,32.96664696786928,0 -86.93788618433825,32.9657760580067,0 -86.93599937956812,32.963654311154,0 -86.93385994394376,32.9622291597797,0 -86.93034236882548,32.9627522391019,0 -86.92114044861447,32.96030235770069,0 -86.91516089905626,32.96340979019517,0 -86.9140252000709,32.96374594272284,0 -86.91257212265486,32.96461360505219,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
the simple fix probably would be to just copy and paste each bad ring’s first point to the end of its coordinate list.
but i’m not sure exactly how you ended up with rings that didn’t start and end at the same point. so whatever you did there is the real problem, and you should probably figure out how to prevent that from happening in the future.