You need to reset the points after the box is checked/unchecked.
Something like:
Code:
CritFrame:Hide()
HitFrame:ClearAllPoints()
HitFrame:SetPoint("TOPLEFT", APFrame, "BOTTOMLEFT")
or
Code:
CritFrame:Show()
HitFrame:ClearAllPoints()
HitFrame:SetPoint("TOPLEFT", CritFrame, "BOTTOMLEFT")
Or you could just set the text of the fontstrings from top to bottom and set the last one(s) blank so you don't have to move anything.