David,
>It is as though the label is looking at the color of its parent (the container) and matching it but not taking into account that its immediate parent might be transparent and so it should look for the color of its parent's parent (the page).
So why not have your container class grab set it's BackColor to the first non-transparent parent that it can find walking it's way back to the form? A few lines of code in your base container class Init() should solve the issue.
loParent = this.Parent
do while ! isnull( loParent )
if ( loParent.BackStyle != 0 )
this.BackColor = loParent.BackColor
exit
endif
if ( loParent.Name != thisform.Name
loParent = loParent.Parent
else
loParent = .null.
endif
enddo