FreeSurfer’s calculation of thickness is not the expected, simpler distance between white matter and pial surfaces; it’s actually a little more complicated. First, the computation is done between the smoothwm surface, not the default white matter surface, and the pial surface. For every corresponding node, the shortest distance of that node to any other node on the other surface is found. Those shortest distances from pial to smoothwm and from smoothwm to pial are then averaged to compute the thickness. Thicknesses are limited to a range between 0 and 5 mm. I’m not sure how you find negative values, but that shouldn’t happen with typical processing. There are, of course, other interesting ways to find thickness.