How to handle persistent level properties

I have a c++ script that places persistent items in a level (for my game level editor). For example, the script places MESH X, and assign its property ‘ID’ a value Y.
When I’m tampering around the level, changing small details here and there, sometimes I notice that the meshes have their properties reset to their default values (zero in this case, and it happens maybe after a light rebuild o changes to the mesh). Also arrays generated by the script get lost.

If my explanation is clear, how do you handle persistance for this data?
What am I doing wrong?
Thanks!

PS:

  1. no, the Properties are not Transient.
  2. No, the values are not set in the Constructor.