Xyp, thank you for the response.
It was a good idea - I set devmode=true in the wurm.ini file, created a new guard tower, noted its WurmId using my GM character's ebony wand, and then made separate copies of the SQLite database files as follows:
1. Before stopping the server;
2. After stopping the server;
3. After starting the server, but before logging in to the game on the client side;
4. After starting the server and after logging in to the game client-side.
In cases 1-3, a SQLite Browser examination of the database shows that the WurmId is still in the database - it says it's a guard tower and its coordinates are as expected.
In case 4, though, the guard tower's WurmId is no longer in the database.
This leads me to believe that whatever it is that's causing the guard tower to disappear from the world, doesn't happen until I attempt to login to the server.
To my knowledge, nothing else is reverted, missing, or otherwise adversely affected. Our "settlement" is pretty localized on the map and it's a small group of us so we mostly know what we each have.
I did notice that even with the guard tower missing, its guard was still there and patrolling... In fact, there were at least 3 guards, even though we've never had more than one tower at a time - which would suggest that even though the tower isn't there, the guards aren't "despawning" with it? I did not check to see whether they respond to typing "help" or "guards!" into local chat...
I just examined the log file - something very interesting!
I haven't fiddled with any of the kingdom data on the server - I'll take a look and see if I can find anything hinky.