I can not display search template created from a post type custom

You’re using the single_template hook, which is called for a single post. From the Codex:

The “single_template” filter can be used to load a custom template for
a given post. It will replace the template used whenever the “single”
template is called.

My guess is that this can probably be achieved by using the template_include hook:

This filter hook is executed immediately before WordPress includes the
predetermined template file. This can be used to override WordPress’s
default template behavior.