Template with Custom Post Type (Custom Tables) does not work

Question #1: I don’t really understand this question, but what you have done looks alright. I might add the pre_get_posts filter in the same place as register the post type– presumably a plugin file– but registering in the theme should work. It won’t transfer to another theme if you do that though.

Question #2: You have to flush the permalinks when you register a new CPT. There are a number of questions and answers here concerning that. Recently, I answered this one: https://wordpress.stackexchange.com/a/99014/21376 The short version of the story is “Go to wp-admin->Settings->Permalinks and click the save button”.

Qustions #3: The file names come from the name (slug) you use to register to post type– the first parameter here: register_post_type( 'my-project', $args );. The other arguments do not effect that, as far as I know.