Ya, for me it keeps moving it up a bit. I think it has to do with this section:
Code:
-- adjust so the label stays fixed on the screen
self:SetPosition( self:GetLeft() + oldIconPosition - newIconPosition ,
self:GetTop() + oldLabelPosition - newLabelPosition );