Let's review how it works.
Hubitat sends a "Power On" command for example.
Tasmota responds to this command almost immediately (6/1000ths of a sec) in this example.
This response goes back to Hubitat where the driver detects it and says Great, the power was successfully turned on so I will log it and update the interface.
About a second later the rule runs because a change has been detected (from Off to On)
and it figures out all the current values and send them in a line like this.
webquery http://192.168.0.200:39501/ POST {'TSync':'True','SWITCH1':'1','POWER':'569','VOLTAGE':'117','CURRENT':'4.85','APPARENTPOWER':'570','TODAY':'0.0','TOTAL':'769.2','YESTERDAY':'6.1','FACTOR':'1.00','REACTIVEPOWER':'0'}"
Now the logic in the driver goes like this.
If it gets a 'TSync' within X interval of initiating a change then assume the 'TSync' has been caused by the selected change and ignore it. X is the "Debounce Interval" which is settable in the driver.
I don't know what you are referring to when you mention "deduplication" line.
This is how it normally looks.
You will see the interval between the "TSYNC" events is 1 minute. This is controlled by the "TelePeriod" value in Tasmota. In this case the TelePeriod is 60.
So first, check the Hubitat log and see what the incoming "TSYNC" commands look like. See if the spacing matches your TelePeriod or not.
If you are still seeing double entries then I would suspect that you have more than one rule that is fired. Check the contents of your rules.
Lastly, if things still are not right send me a copy of the Tasmota console so I can see better as to what is happening.