I also get your once-a-minute behavior on my 10.4 system with that config file.
The launchd.plist(5) manpage on my 10.4 system says that StartCalendarInterval is a “dictionary of integers”. It looks like the “array of dictionary of integers” that you are using is documented in the 10.6 launchd.plist(5) manpage. I found a forum post that indicates that the array feature was introduced in 10.5.
For 10.4, you will probably have to create one file for each StartCalendarInterval you want to use. Or, if you can stand to use the same time each day (bring Monday in line with the others), you could leave out the Weekday specification in the plist file (so that your script would be run at the specified time every day) and then make your script exit out early if the day of the week is a weekend day test "$(date +%u)" -lt 6 || exit 0
).