Made second level collections and objects readonly for deserialization

Did this for some of the objects as well, when we pass an ID we manually set them so the deserialization should not happen