Move theme templates to subfolder without losing page associations

You could hook the page_template filter and check if the current page has a _wp_page_template meta key. If it does, you can check if file_exists in the new templates location, then update_post_meta to append the new directory name.