There are three different sets of values here. Which ones matter depends on what app the font is being used in.
If the font is being used in professional graphics apps, such as Adobe Creative Cloud apps, then none of these values matters: the line spacing defaults to 120% of the point size. The only way to change the default line spacing in such cases is to change the em square or the size of the glyphs themselves.
For other apps and platforms, one of the three sets of vertical metrics is used. (Note: treat all negative numbers as positive for purposes of summing the values.)
os2.TypoAscender + os2.TypoDescender + os2.TypoLineGap
os2.WinAscent + os2.WinDescent (commonly used on Windows)
hhea.Ascender + hhea.Descender + hhea.LineGap (commonly used on Mac)
Note however that reducing the WinAscent an WinDescent values below the vertical bounding box of the font can result in clipping on Windows. For more advice on setting "correct" vertical metrics, see this thread on Typophile:
http://www.typophile.com/node/71230