I have a Minecraft world that was corrupted by switching versions from 1.8.8 to 1.3.1. Pieces of what I have built are missing, and some blocks that weren't in 1.3.1 are missing. I have no idea if I can repair the damage. I have a backup, but it doesn't contain every new thing. Should just use it, or is there a way I can fix my corrupted world?
There is no way to automatically repair the world after it was opened in a wrong version. What happens in such case is the game loads the world and encounters blocks unknown to it, so it replaces all of them with Air. If the world is then saved, the information about deleted blocks is lost forever.
As you have a somewhat-relevant backup, your best course of action will probably be to open both worlds in a map editor (the only one I know of is MCEdit, but there are probably others) and selectively copy parts of the damaged world into your backup. Just see which version of each building is better - the damaged one or the unfinished one from the backup.
The reason for using backup world as a base, as mentioned by @dly, is that versions between 1.3 and 1.8 have introduced tons of changes to terrain generation, and not only your structures are now damaged, but the whole terrain, probably including underlying biome data.
Here's a short list of all naturally generated things added since 1.3 to scare you a bit :-) All these things now leave a hole in your world (or at least revert to more generic blocks).
- Flower Pots, Nether Quarz Ore, Trapped Chests, Horse Armor, Name Tags, Hardened Clay, Horses, dozens of new biomes, two Wood types and their derivatives, Podzol, Packed Ice, Coarse Dirt, Red Sand, Red Sandstone, several flowers and plants, Andesite, Granite, Diorite, Ocean Monuments. And Spawners are now probably broken due to different data format.
After copying your damaged structures to your backup, if your game was survival, you may also opt to using creative mode or MCEdit to manually repair remaining damage.