You've laid things out very logically but in a way which simplifies things for the programmer not the user. There are too many choices and free text boxes on screen to make it easy for the user.
Consider having the user select from Daily, Weekly, Monthly, Yearly and then change the UI for the rest of the dialog accordingly.
Consider allowing selection of "Every n days/weeks/months" or
"First Monday of the month", "Second Tuesday", "First weekday" or "Last Friday" etc.
Using 32 as meaning the last day of the month is a little obscure. Have a separate selection for this.
Check the Recurrence dialog in Outlook for more ideas.