use the events WorldEvent.Load to load and WorldEvent.Save to save.
this is an example:
@SubscribeEvent
public void onWorldLoad(WorldEvent.Load event) {
ModWorldSavedData.get(event.getWorld());
}
@SubscribeEvent
public void onWorldSave(WorldEvent.Save event) {
ModWorldSavedData.get(event.getWorld()).markDirty();
}