I don't doubt what you're saying. I just don't think what you observed was what was supposed to happen.
(Added: Specifically on not being offered a reward you have already won, see Image: Grand Prize. You can visible see El being offered the pole and boots while already wearing the pole and boots. On test realms at least, there was no such restriction. I'm not completely blind to the possibility, since the Unique tag prevents taking some of those rewards a second time, but I would like live confirmation of any change in a situation which is not so blatantly buggy.)
The main purpose of the fix was to stop the realm-jumping which let players fish on an early timezone realm, then turn in at the very start of the contest on a later timezone realm. At the same time Blizzard also tried to implement realm-specific winners, something which had originally been taken out in a late-beta attempt to make the Stranglethorn Fishing Contest function at all. (From the reactions I got at the time, I don't think the designers were aware the contest winners had become linked to realm groups, the implication being that it was bugged-fixed only to function technically - indeed, as described below, I don't think the event timing implications of CRZ had been thought out at all.)
After a bit of 5.1 head-scratching, the designers finally realised that time-based content was never going to work smoothly with cross-realms on different timezones - time was a constant in many aspects of the design, yet originally none of the design team seemed to realise that granting players the ability to jump through time might cause problems. And hence we got a wide-ranging change to the time across a raft of game events, all to because they couldn't find a better fix for the Booty Bay contest. (Evidence for that comes from a lot of between-the-lines Twitter conversations, but the stinger is there is the way Zarhym introduced the changes by starting with the contest.)
So the change did finally address the design flaws in CRZ, it has not fixed the underlying weaknesses of the technology: Invariably (it seems to me) caused by data not get transferred within Blizzard's own server architecture as fast as players (and game clients) are expecting data updates. For example, since the first appearance of CRZ in beta players have experienced gibberish chat messages when moving between zones on different CRZ-sets - because the data is not perfectly in sync. While excess chat text is merely an annoyance, it reveals a vulnerability - a small period of time when the servers are not enjoying certainty.
Unfortunately WoW was traditionally programmed logically: When event #1 happens, the following event, event #2, just assumes event #1 has happened. That's fine when all those events are running on the same piece of server hardware, since 2 mathematically always comes after 1. But when you introduce sets of machines that talk to one another "slowly", it becomes possible for event #1 to happen, but for the machine keeping track of that event not to realise until after event #2 has also happened. The two machines then get out of sync. While networking and database programming has developed methods of resolving this uncertainty, designer logic has historically ignored it, because historically it was not possible.
So that's what I think the problem is. What's frustrating is that this problem existed all through beta testing and into 5.1, and I don't see any evidence of Blizzard getting to grips with it. As is, their system seems to rely on luck - that events 1 and 2 won't take place too quickly - but with no contingency it seems inevitable that the system will break from time-to-time.