Very likely, you've faced the same problem as this guy:
What happened to my minecraft world?
The problem is that you're trying to bring a post-1.7-snapshot or 1.8 world back into 1.7.10, Minecraft isn't able to read the stored data as they have been converted into named items rather than numerical IDs.
For example, 50
(for Torches) become minecraft:Torch
.
Because 1.7 and any earlier releases/snapshots don't read items by their names but instead by their integer IDs, it automatically deletes them as they are considered to be incompatible objects.
A string is NOT a integer: For example, "ONE" is not a number; it's a word, whereas "1" is a number.
As for why XP and player position remained; it is because there have been no changes to the way this data is stored. Only item/block-related information has been changed.
As for fixing, it - There isn't actually a way. Unless you don't mind going through all NBT data and changing the names back into IDs.
As per current, there are numerous programs (and mods) that allow you to edit NBT data, but there isn't any that allows you to mass-edit them.
Otherwise, stick with Vanilla; it has more 'stuff' than the current Spigot version.
(The Spigot version only allows 1.8 players to connect, but 1.8 items such as armor stands and commands do not exist)