ah...I think we got it now. The trouble is with the xml. ContentType is set on an individual item basis - so you're correct it's being overwritten.
The videoplayer example sets the content type to Talk for some items. Talk isn't an "episode".
The default in the XML parser is episode - so you should be able to remove the lines for contenttype in all the xml files you use and then it'll set them to the default value.
'Set Default screen values for items not in feed
item.HDBranded = false
item.IsHD = false
item.ContentType = "episode"
So why does the videoplayer example even have it using a "talk" content type in the xml?
Valid values = movie, episode, season, series, audio. Missing attribute = NotSet