Two different single.php depending on source page

You would use page templates to accomplish what you’re doing. If you specify a page-{slug}.php, it’ll use that one instead. It always does upward traversal. So if there’s a specific page, it’ll use it. If not, it’ll be one level more general.

Copy the home.php PHP into your new one, and remove the calls for the header and footer. Voila!

You could also wrap the calls to the header/footer in an is_page() conditional

if (is_page("slug-name") { get_header() } <- pseudo code for you to get the idea You’ll have to see what all you need to wrap in conditionals for your use case.

More info on using Page Templates: here