The bastard program works! Finally I can get on with it. The bug has kept me at bay for six weeks and I have just fallen further and further behind with the whole project, now it is fixed and I can play a game from start to finish with all the game logic working just as it should.
It wasn't even one bug either, but at the time I was writing the code to finish it I was doing so many hours on it that I didn't know what I was writing. All the logic was there just that I had gotten confused about what I was doing. And then when I made repeated attempts to fix it I didn't understand what I was doing because of the sheer number of methods that where being called.
The odd thing about fixing this is that I think by completing my Compilers assignment last week, that might have actually contributed to giving me the skill necessary to find and fix the faults with my project because that dealt with loads of loops, passes and obscure seemingly random errors.