Your recording flag seems to be always on, except when initialized. You might need to reset it to zero whenever appropriate. Because the flag is set for all tags, you will always get data appended in the list. This is mainly because of your 'th' tag which is not present in the HTML. Correct the HTML first.
EDIT: Just read that the HTML is not in your control. I am not sure if the check in the 'th' end tag would succeed. Try printing the tag in the endtag. If it is not a th, then control will never reach there. How about using regular expressions to match it. If beautiful soup cannot parse it, you might need to resort to regex.
pattern = '<td.*?bgcolor="#ff9900".*?>(.*?)</th>'
re.findall(pattern, html)
should give you the result.