The issue is that UObject::Modify is always called before changes are made, you want to find some kind of post-edit change delegate. They do exist but I can’t name them currently.
RE the const_cast - probably, but I’ve always found it works fine in practice. Design decisions at the engine level sometimes make it hard to care about const-correctness when making editor tools…