IndexedDataStore should become pure data storage agnostic of an 'element size' or know about copying. These will be controlled by the property factory and property methods.
The internal component data store will need to be updated to allocate new data store's size appropriately if it doesn't know about element size anymore. It could be that Property's setDatastore() method is changed to resizeDataStore(...), but at that point we could even consider removing the IndexedDataStore type completely.
I'm hesitant to go that far because the data store is a useful abstraction over an array.