There you go.
You can get the working sample here
Hope it helps.
What happens is that generic.xaml is just a kind of patch to workaround the fact that ResourceDictionary is not WPF like implemented yet. The consequence of this is that generic.xaml is parsed "outside" the assembly thus not knowing the internal types. So, to use the internal controls and style them, you'll have to workaround in a manner like the one I propose in the sample.
The reason I didn't run into this kind of trouble in my Panel implementation is I was using the panels precisely to make the parsing/constructing of the UI objects faster not using any XAML and setting my own optimized measure and arranging methods. This was, naturally, all done in the code behind.
If you look at the way I'm getting the Style for the PrivateButton type, you'll see the way I'm setting my styles, now-a-days. I use a private static (thus only instanciated in the first object) field and set it in the constructor. One of the advantage of this is that you don't 3 miles of generic.xaml with all the styles in it which is very little workable.
Well. I think this is enough for you to get the picture.
Anything else, just whistle.
Bruno.