Not sure what’s going on with that, but that’s the route to go with this. If the intended template file was actually loaded at that point, then the rest is figuring out why it was ending up blank or REALLY big, and moving forward from there.
The only other way I can think of that is more akin to the select input on the post editor is very custom using a metabox and loading with pre-selected templates from your theme folder, and allowing the user to choose which to use, and save that value to post meta. Then, you hook into the template_include hook, grab the selected meta value, which will store the template name/path and tell the template_include hook to use that file. A bit complicated if you’re not a developer, but I got the same idea to work for standard posts and custom templates for a client site once.