I'm unable to reproduce this here. I set up a tag changed script on the last received tag that merely executes a print statement. These print statements print to the wrapper.log with a time stamp. The tag change script for the tcp driver tags will fire no quicker than the scan class rate for the tags it's watching.
I set my scan class to 500ms and wrote the message "hello" to my tcp device connection continuously for 5 seconds with a 100ms gap between each message through a python script I wrote. When I checked my wrapper logs I saw that my print statement from my tag change script appeared twice each second. When I upped my scan class rate to 250ms I saw 4 messages a second. The message was always the same and I always saw the tag change script execute.
What version of Ignition are you running?