If I was employed working 45 hours per week and 21 leave days per year can it be changed to 47.5 hours per week and the leave reduced to 15 days per year?
And can they stipulate how I have to take my leave eg: 7.5 days every 6 months?
The terms of your contract may not be less favourable to the employee than those contained in the Basic Conditions of Employment Act (your original contract was in line with the BCEA, but the current terms are not). However, the Chapter of the Act regulating working hours does have limited application, and may not be applicable to you - you may earn above the threshold, or be employed in a senior management position, or there may be a sectoral determination.
In any event, your contract may not be changed unilaterally. Refer to http://www.labourprotect.co.za/Changes_to_Employment_Contacts_by_Employer.html