Also, the code is exactly the same as on windows, but these issues only appear on my linux setup (with the exact same source code)
As this thread clearly shows, the fact that you use the same code on another operating system with another compiler is no guarantee that the executable has the same behavior.
It's very likely that your code contains bugs, possibly because you assume certain behavior (of the C++ language, of the compiler, a library, ...) that is not guaranteed. Try to debug it with Code::Blocks and see what parts don't work as expected.
I am getting major glitches that I can only guess are related to multi-threading.
Do you use multi-threading? Because the book does not (apart from one example of a loading screen)... If you do, you should probably avoid it until you get your application running correctly.