The problem ended up being C#'s Float.Parse() not using the InvariantCulture by default when I'm loading levels.
So people with an OS that's in a language that doesn't use dots for the decimal places in numbers would just crash
Hah, that's a bit of classic. I'll give it another shot then!