My understanding is that the MPS is copied, but it is not a "deep" copy, in that the ITensor data contained in the MPS is not copied. ITensors use "copy on write", so if you copy an ITensor, the data is not copied until you try to modify the new ITensor. So "copying" an MPS should just involve make a vector of pointers that point to the ITensor data, and should be very fast. Miles can correct me if I am wrong here.
Also, compared to the time of actually running DMRG to get the excited state, even if all of the data of the MPS was copied, I doubt it would add a noticeable amount of time (keep in mind that copying all of the data would be O(m^2) for an MPS of bond dimension m, but DMRG is O(m^3)). For things like this, it is helpful to add timers and do profiling to time parts of the code.