Maybe I can help you out here. You could just use a helperframe that lays between portrait and text.
Code:
--I don't know the Portrait call but it should be similar
self.pm1 = CreateFrame("PlayerModel", nil, self)
self.pm1:SetFrameStrata("BACKGROUND")
self.pm1:SetAllPoints(self)
self.pm1:SetUnit(unit)
--self.pm1:SetModelScale(1)
self.pm1:SetCamera(0)
--self.pm1:SetRotation(0)
self.pm1helper = CreateFrame("FRAME", nil, self.pm1)
self.pm1helper:SetFrameStrata("LOW")
self.pm1helper:SetAllPoints(self.pm1)
self.pm1helper.Text = SetFontString(self.pm1helper, nil, 13, "THINOUTLINE")
self.pm1helper.Text:SetPoint('CENTER', 0, 0)