page-slug.php not working but only for specific slug

I thought it might be conflicting with something I had in functions.php, however nothing else was using the name “comics”

There is, here:

// Arguments
$args = array(
    'labels' => $labels,
    'public' => true,
    'menu_icon' => 'dashicons-book-alt',
    'hierarchical' => true,
    'exclude_from_search' => false,
    'has_archive' => true,
    'publicly_queryable' => true,
    'rewrite' => array( 'slug' => 'comics', 'with_front' => false ), // <-- Here
    'supports' => array( 'title', 'page-attributes' ),
);

// Register Comic Pages Post Type
register_post_type('comic-page', $args);

So you have a post type with the slug comics, which has has_archive set to true, meaning that the URL /comics is being used to display the archive of the comic-page post type. If you want to customise the template for this archive you should create an archive-comic-page.php file, as per the template hierarchy.

If for some reason you don’t want this archive, you can set has_archive to false to disable it, freeing you up to use /comics for a page.