After looking at the code again I'd bet that it's a conflict with another plugin. Unfortunately the "player_say" event doesn't work as I would think (bug report here
), so any chat modification has to be done through hooking the "say" and "say_team" commands and then recreating the chat message.
I could definitely see this causing chat duplication between two plugins - if that's the case let me know which one it is and I'll see where the problem is happening.
The other option of course is that it's a CS:S issue - I've only tested on TF2, but there shouldn't be any reason it wouldn't work for all Source games.