What Template is used to display post lists?
Depends on the type of listing being requested. If it's a listing by category, the template order is category.php -> archive.php -> index.php
If it's a listing for a specific month etc, the template order is archive.php -> index.php
If it's your site's front page or it's main Posts page, the only template used is index.php
In theory, you need only have an index.php file to display any of these different post listings. The various specialised templates merely offer you the option of displaying the various listing very differently.
what is creating this group of four pages of post lists in the first place
If I understand your question correctly, it's the query - the code that goes and grabs a list of posts from the database based upon specific criteria. The appropriate template then works through the list of post returned from the database using The Loop to display them on the final page(s).
I haven't created a page that just list all the posts. Why does it exist?
Remember that WP creates all of its web pages dynamically. So when it receives a request to display all of your Portfolio posts, it simply looks for the right template do carry out the task.
The other thing that is bugging me is why is_page_template('index.php') doesn't seem to work?
index.php isn't a page template. It's a post listing template. In WP Post & Pages are very different entities. To use is_page_template, you'd need to create a custom page template first, then apply it (via the Page Template dropdown) to one of your Pages.
For your custom title in header.php, try using:
elseif ( is_home() || is_front_page() ) { echo bloginfo('name');}