I've found a solution. Inside the VSIX manifest designer's Assets section, where you add your custom template wizard assembly, there is a box at the bottom that says "Embed in this folder:". If you enter the value ProjectTemplates in there, it will work.
What is actually happening when the VSIX extension is installed is that it's extracting the assembly (DLL) out to the /Common7/IDE/Extensions/{random letters denoting unzipped extension}/ProjectTemplates
folder. Apparently this structure is what is expected.
I really hope this helps someone. It seems this process has changed since VS 2010 and the newer VS 2012/2013 documentation is a bit weak.
Screenshot attached.