Hi Tom -
After looking at your code - the problem is namespaces. Namespaces for custom controls MUST follow the exact folder structure of your Project. This is how Embedded Resources are referenced in the .DLL. You can verify this using RedGate/Lutz Reflector to examine your .DLL file.
So, for Embedded Resources (XSLT/JS, etc.) to be found for your control, the Control's namespace must match the folder structure where the Embedded Resources reside.
For example:
/ (Project Root)
/ Controls
/ MyCustomControl
MyCustomControl.cs
MyCustomControl.xslt
MyCustomControl.js
The namespace within your .CS file must also be: (AssemblyName).Controls.MyCustomControl
Pretty simple, once you understand that the folder structure is how the Embedded Resources are referenced from the DLL.
Hope this helps!
Ryan