Your naming & structure look fine.
Edit: Put the show name as part of the episode name. Then Plex Dance the entire show. Missed it the first time I read your post.
After you renamed the files, did you refresh the metadata for the show and/or try the Plex Dance?
If not, try Plex Dancing the entire show. That will remove all existing metadata, then re-scan the files and re-download metadatea.
When I try it on my system, I get an immediate match with correct episode names. I’m using TheTVDB as an agent, and it is configured as shown above. Running PMS 1.20.3.3437 on a DS918+.
File naming:
/Test TV Shows/Touched by an Angel/Season 03/Touched by an Angel - s03e01.avi
Library set to use TheTVDB:
Plex client, Season 3: