We have an enterprise software introduced as SaaS model, and we end up with a huge number of services which are sometimes duplicated but no one knows, so what might be good practice ways to keep track of those services and their business logic in order not to have duplicates which really jeopardize the software.
In microservices, this problem is solved by having... an additional service which lists another services. Being the central point for service discovery and indexing, it may reduce the risk of duplicates, since if someone in the company is trying to register a service, he may have a chance to find the previous similar/identical service through the keywords or other search capabilities. The idea is very similar to what Stack Exchange does when you type a question, and see the list of possible duplicates before submitting the question.
Independently of the technical approach you chose (would it be a service, or an Excel file, or something else), the essential point is to have a sort of central authority registering the new services, and making it mandatory to register the service before using it. It's all about communication. Technical approaches to enhance this communication are just tools.