By default, WordPress page templates (the ones that show up in the Page Attributes → Template dropdown) are only available to the page post type. That’s why you’re not seeing them for your custom post type (CPT) or for posts.

Use the new file header method (Template Post Type)

Since WordPress 4.7, you can make templates available to any post type by adding a header to the top of your template file, like this:

<?php
/**
* Template Name: My Custom Template
* Template Post Type: post, your_cpt, page
*/

So if you want your template available to posts and your CPT, just add them there.