Hi,
I created a small spike application based in the approach mentioned above. Perhaps, you could find it useful to compare with your own implementation and check the differences with it.
You can find it in my
Skydrive account under the name: TabControlDynamicTabItems.
Regards,
Agustin Adami
http://blogs.southworks.net/aadami