In SA if you are in a union for a low level job you definitely get salary according to what the union negotiates irrespective of individual performance. Its the main reason I would never join a union. Professional jobs do not work the same, the way they work is salary bands.
So say for a job like developer you have a salary band, where a junior new employee can earn 30K, and the most senior dev will earn say 60K and be at the top of the band. Thing is the bands are there as hard caps, and even with great performance you may just be at the top of your band and get nothing. I have seen it happen here at an investment bank where a previous head of department really valued quant skills as he was a quant and managed to adjust the salaries of a few quants way above the rest of our floor. The next leader rightly noticed they where overpaid relative to the value they added and where over the top of a reasonable salary band so no matter how well they performed they got lowish increases.
If you want better pay you need a new job with a higher salary band, or you need to shift companies to find a higher band for the same work. For instance a developer working for a retail organisation might have a top band of 60K. A developer working for an investment bank might have a band cap of 90K, but be expected to learn some additional skills. I am guessing you work for a PWC/KPMG etc type outfit? If so the type of thing you are experiencing is very common. My brother is going through the same crap. Out performing everyone at his level with even management agreeing but they still pay him the same as all the other associates as those be the rules and all that crap. Still, it means you are more likely to move up through the ranks, get overseas opportunities perhaps, things like that.