Try changing:
[components setWeekday:1];
to:
[components setWeekday:[calendar firstWeekday]];
You should also remove the NSYearForWeekOfYearCalendarUnit
and NSWeekCalendarUnit
components.
Bonus Question: "Region Format" should be the setting that changes the first day of the week.