Indeed "Life" wasn't writeable for layers in v1.12...
OK so there are 2 workarounds you can use. Either:
1- make the layer infinite and turn off "Flux" in the layerscript when it's older than the life attribute: "Flux = select(1, 0, Life > MyAttribute);". I don't know how the Iclone integration handles infinite effects, but you might need to stop the effect instance explicitly from iclone, otherwise the layer will still be simulated for doing nothing even after it stops emitting, and it'll eat some performance for no reason.
2- Use a trail evolver to fake a layer. Make your layer emit a single particle that will act as a new "layer", set the life of that particle to your attribute, add a localspace evolver, and then a trail evolver with a time metric setup to mimic the emission rate you would have set inside your original layer.
If this isn't clear I'll make a more detailed step by step reply, but it'll take some time.