Normally when you get a constraint violation thrown, either the data type is incorrect (should be string), there is a character limit that has been exceeded or some other limit has been tripped.
Check out the attributeSchema object for proxyAddresses and see what limits there are.
If I had to guess, the fact that you have multiple "SMTP:" in upper case in your string array, it may throw an exception because you can only have a maximum of 1 primary smtp address per object.