tvOSのUIButtonのBackgroundImageはなぜかimageViewよりも前にあるので、セットすると文字やsetImage,stateした画像が隠れて見えなくなります。
上が修正済みのボタン、下が既存のUIButton
レイヤー構造

UIImageViewが二枚あって分かりにくいですが、backgroundImageのImageViewが先頭に来てしまっています。
class FixedButton : UIButton {
override func layoutSubviews() {
super.layoutSubviews()
if let iv = imageView {
iv.superview?.bringSubviewToFront(iv)
}
if let lbl = titleLabel {
lbl.superview?.bringSubviewToFront(lbl)
}
}
}
上記のようにUILabelとUIImageViewを先頭に移動させれば解決します。(backgroundImageのImageViewは直接参照できないのでこれで)