The inc/template-tags.php file is a separate issue from template-parts files. The functions in this file are pluggable functions. You can redeclare these functions on any valid PHP page. The child’s functions.php would be fine, as would a separate template-tags.php file. If you use a file separate from functions.php, you need to reference it with a require_once
statement on the functions.php file. The child template overwriting system does not apply to regular PHP code files such as this. You need to manage the references yourself. You only need to redeclare functions you wish to change, you don’t necessarily need the entire file content. Include the if (!function_exists()): endif; bit as well even though there will not be further overrides. It prevents warnings during theme activation.
The template-parts files are of course part of the theme template system. As long as the parent is using the get_template_part() function to load template parts, any child template parts that exist will be used in preference over the parent’s files. This is the case with twentyseventeen, so your child files should be utilized. Be sure you utilize the same relative paths and filenames as the parent does. Verify that WP has proper permissions to access these files.
What happens when a template calls get_template_part() is WP first checks if any child files exist in the specified path relative to the theme folder. WP uses file_exists() for this, so if it returns false due to a permissions issue or because no such file actually exists, it tries to get the template from the parent path. This should always be successful, but by chance the parent file does not exist, the file is searched for in the internal default theme. If that fails, nothing happens. WP uses the first valid file found in that sequence, so child files always take precedence if they exist.
I’ve tested this on my own twentyseventeen child and template-part files are definitely used where they exist. There are no filters in the template part loading code, so plugins cannot alter this behavior. The only way to change behavior is through a dirty hack of altering core files. The only other explanation for why child files are ignored is some server configuration is preventing WP from seeing that such files exist.
Be sure the original twentyseveteen files have not been altered, as well as wp-includes/template.php and general-template.php core files. You might consider replacing the files from a fresh download of the exact same version to be sure. Be sure no caching is in place that prevents you from seeing changes to child files. There could be general server caching placed by your host that is outside of the WP environment. If so, there should be a way of flushing the cache from cPanel or something.
In summary, there are 4 possible explanations why child templates fail to load:
1. errors in child path/file names
2. altered theme or core code
3. server configuration or file permission issues
4. caching in place, either within or external to WP