For anyone else who may come across this:
It seems to be the Landscape_WaterBrush specifically that was messing with the world partition proxies’ Load/Unload behavior. With this removed, they started working again properly and, when the level is opened, are in their correct state.
The WaterBrush is generated every time a WaterBody is placed, along with a new Water Edit Layer in the landscape, as they’re required for the landscape deformation.
My workaround:
Delete all that.
Make a new BP derived from WaterBodyCustom. the WaterBodyType you want.
Open it up. In this, set Affects Landscape to False as the default, which will prevent the brush and layer from being generated when placed in the level.
Select the water type you want it to be (I’ve done river and lake so far), and assign your materials to their appropriate slots. (You may be able to do this by deriving directly from one of the presets. I havent checked that.)
Use these in lieu of the default actors.
The catch:
You’ll need to carve your rivers and such yourself if they’re not already part of the heightmap, but you get to keep the rest of the helpful features like splines, width and depth settings, waves, materials, etc so you don’t have to re-invent the wheel. And it seems you can still use Landscape Edit Layers for non-destructive sculpting.
Underwater post process seems dependent on channel depth setting. (Just enable “affects landscape”, set it as needed, and disable it again. It won’t create the brush or layer once it’s already been placed in the level.)
Plugin is experimental though, so this may not work for newer engine versions going forward.
Edit: Don’t inherit from waterBodyCustom and try to set the type from there. It will need to be manually compiled every time you open your project or the level will crash when opened. Inheriting directly from Lake/River does not appear to have this problem and you can still disable landscape effects.