these objects doesn't need to constantly check for updates whenever you are regen, changing viewports, copy a profile, etc. maybe just have a switch to synchroize. you have the objectID collection stored in the profile. so just simply look it up on user demand. most of the time if things change you better off delete all the projection and start over again anyways.
Civil 3D 2012 Work: Xeon W3503, 12GB, Quadro 2000, Dell P2211H x 2 Home: 3930k, 12GB, GTX 590, U3011, QX2710