I believe jcr:created is a protected JCR property which means it can only be
set by the repository. This constraint is enforced by JCR implementation, not
by Sling.
As Steven suggested remove the line that explicitly sets it and it should work.
If you have a use case that requires setting a
A) Sling expects the mixin types to passed as their raw String values
and not as the JCR NameValue type.
The fact that the JCR NameValue type is being utilized instead is
causing the error you are seeing as the Sling functionality converted
it to a String (incorrectly) causing it to become