Memory being abruptly freed up every day at about the same time
I've seen this same "sawtooth" pattern in other systems, in particular a Java-based data tool.  Based on your description, I think you're looking at  .NET garbage collection (assuming this is a .NET app.)  Java and .NET are both memory-managed languages and frameworks that use garbage collection.

A memory leak is typically found in frameworks that lack memory management, or in a program on a memory-managed framework that is overriding or confusing the garbage collector.

The fact that these are your highest-traffic servers makes sense.  You're seeing the .NET framework allocate memory as needed, then the garbage collector kicks in on a regular cycle and reclaims unused memory using the garbage collection algorithms.  Unless you're tracking specific performance issues I don't think this memory usage pattern is a problem.