Seriously are you still on that? Tracking an anonymous transaction when there are practically no other transactions moving about isn't exactly difficult because it's not hard to make an educated guess as to the source transactions by looking back a few blocks and taking fees into account along the way. Anyone could do this by examining the block explorer. (You don't need a program to come to an educated guess).
These transactions seem to be fairly old and are from the good old times when there were at least some transactions in the blockchain
However, if I were to send several anonymous transactions of equal amounts, all from unique wallets, all within a short space of time there is no way in hell this program (or anyone trying to decipher it manually) would be able to come to an educated guess because there would be too much transaction congestion to figure out which transactions came from which wallet or end up at which destination.
That's true. If several wallets send the same amount at almost the same time, then this method won't work 100%.
However, this method still gives you list of the addresses that sender exerts at least some control over them (it owns private keys or it has the power to use them to create "fake" transactions). The "working" anonymity implementation should not allow even such "guesses" - such guesses are more than enough for someone (law enforcement etc.) to track you.
And this method could probably be modified to distinguish "fake" transactions from the "real" ones based on the the way how "real" transactions look in the blockchain (for example, "real" transactions use inputs that are outputs of the transactions in the same block, one could also "color" some coins and send them through the mixer etc.).
But the devs will have to prove that such attacks don't and can't work (even in the case when - for example - someone decompiles precompiled binaries etc.).