Hi
I wrote what is farther below ( in this reply) before I saw what is most likely your problem. I left the other part in, in case it is relevant.
You can’t use relative links in WordPress. A relative link is one like this
<a href="../services/ambulance-ems/" title="Learn more about our EMS Services"></a>
which means go up one level, because the level the URL is being seen as varies depending on the page on which the content is being displayed.
I realize you say that is the one that is working but in some ways that is a fluke. The reason you can’t use relative links in WordPress or most CMS systems is the link is relative to the URL the content is being called from. In WordPress content can be called from a number of positions – posts on a single page, a category page, a tag page, the blog page. The URL in each case is different – different numbers virtual folders, and relative links generally only work correctly in some of those cases, and give a 404 in others.
You really need to use a hard coded link. You don’t need to include https://mydomain.com but you do need to include everything that comes after that STARTING WITH A SLASH. That is what creates the hard code – it has to be the path from the web root to the actual URL. That is the only way to get consistent results.
AS far as a template tag I use links like this and they always work
<a href="<?php bloginfo('url'); ?>/services/ambulance-ems/" title="something">something else</a>
==============
below, if this helps
You answered that question by stating it doesn’t change if you rename a page unless you change it’s slug name in the edit page area. But the core name stays the same regardless.
I never said “the core name stays the same regardless” because that is not how it works. When you change the permalink, also called the page slug, the old name goes away.
If your billing page name didn’t change when you changed the name to services it is kind of likely you had two pages named billing (accidently creating one) and that is the one that is showing up. I have done that myself.
When WordPress encounters what would be a duplicate permalink it tacks a number on the end billing-2 service-2 If you are not paying close attention you can miss this.
This has gotten trickier since they changed the delete function to a trash function because you can have pages you thought you deleted sitting in the trash that continue taking up a permalink. Sometimes I have accidently linked to the trashed one thus the link won’t work.
What you are describing can not happen by WordPress out of nowhere. That is not the way it works. It is more likely that you have a duplicate somewhere that you are not aware of.