Hmm I don't have good idea off the bat for that. Your offsets would also get invalidated the moment you zoom . It's probably better to have a list of features in you view model, and a converter in your view that converts them to graphics in an overlay.
Also note that you can use the offset properties on the symbol to "move" the points relative to the mappoint, without having to convert the screen coordinates back again.
Another approach is to push the LocationToScreen delegate into your viewmodel on load, and clear out on unload. It's probably not 100% purist MVVM, but neither is dealing with screen coordinates. IMHO a purist MVVM pattern is nice to have to brag about, but it quickly gets somewhat unpractical.
For instance most MVVM experts are clear on stating that it's totally OK to have view-specific code in your code-behind of the view (it's still part of the view), and that might include pushing things to/from the VM, as long what's sent across to the VM isn't view specific stuff in itself. Some purists like to point out how wrong that is, but that's what a purist is supposed to do