Well that's some lazy programming, even for Blizzard... fortunately you can access all of a frame's regions and children even if they don't have names and/or keys:
Code:
local bgLeft, bgRight, bgMiddle, highlightLeft, highlightRight, highlightMiddle = GhostFrame:GetRegions()
local contentsFrame = GhostFrame:GetChildren()
local text, icon = contentsFrame:GetRegions()
They're returned in the order they're created. If the GhostFrame had any regions directly on it, they'd come after all the regions it inherits from its template.