You don't need to lose your games if you need to re-install. You could save them to a portable hard-drive, or on a different place on your computer entirely--like on the desktop--where the game won't look for them.
I'm not sure entirely what is going on in your game. I'm not sure if it is installed properly, or if all the files needed for the world are there. I have no idea. I didn't stumble across this problem myself. I would think, in the case that it isn't installed properly, that you wouldn't be able to access it at all, let alone some of the time. What i'm thinking you need to do, and bare with me, is uninstall it again, and make sure you get EVERYTHING attached to it.
In the /InstalledWorlds folder, delete the Riverview one. Then, go back into the /TheSims3 document and delete the following caches: SimCompositorCache, CompositorCache, CASPartCache, and ScriptCache.
Then, go into your DCCache folder and delete anything Riverview related. Also, go into the "Downloads" folder and delete anything Riverview in there.
THEN do a complete re-download and re-install of Riverview.
From this post on the official forums.For the school problem, if you have managed to get Riverview to run completely and that is the only remaining issue, I would say go into edit town, bulldoze the school and place a new one. Make sure the lot is tagged as a community lot first, though.
I've had a similar problem, not with a building but with items the Sims use frequently, like a bed for sleeping. I would tell them to sleep, and they would stomp their foot, yell and wave at me, as if there was something in the way. I would personally walk them to the side of the bed I wanted them to sleep on and get the same response when I told them to sleep. So I just went into buy mode, copied the bed I had and placed it, deleted the older one and placed the new one in that spot, and they were able to sleep. I imagine whatever is causing that kind of weird issue is happening on a grander scale to your world.
If this doesn't help, let me know and I will keep looking for solutions.