Thanks for the report, h1!
However, what happened is the correct behavior.
If you take a look at Haggler here
or in the game, you can see that its text is divided by a line. The +$2 effect is above the line, this is the so called on-play effect, it happens each time the Haggler is played, and your log shows that you got the +$2 the second time.
The "While this is in play..." part is below the line, which means it applies at a different time, in this case, while it is in play. The Haggler card is in play only once, Scepter doesn't change that, Throne Room, Royal Carriage a.s.o. don't change that either. There is only one Haggler, so it triggers only once for each buy, not multiple times.