Echo on inter-extension calls

Hello community, we have had many happy stories to share about implementations of Asterisk. There is one specific deployment though that has been a running nightmare. Echo and sound quality issues that refuse to go!
the latest is echo on internal calls (SIP to SIP) this is the first time that we see this! the environment is made up of FreePBX running on a VM with cisco catalyst 3750 PoE switch and a mix of Cisco SPA5xx and Aastra 6731i phones.

We have a sangoma vega 50 TDM gateway to interface with PSTN. there is intermittent echo across the board, external call (often), internal calls from time to time. i’ve replaced the server, the gateway and the phones. Still no solution in sight, anyone has any ideas?
Thank you