Previously in my code I declared all of my sf::Image sprite images outside main() so I don't have to keep passing around loads of refs.
You shouldn't do that, even if it appears to be convenient in the first place. See also
this post.
If you avoid global variables, you don't have to pass around references all the time. If you keep dependencies between classes small, then fewer object propagations are necessary. You can also group multiple arguments together (e.g. in a container) and store them as a member as soon as you initialize the object.
I'm not sure about your problem, though. Have you recompiled and linked SFML correctly? It might be that the global texture gets in conflict with other global data provided by SFML, namely the OpenGL context. At least, the error message looks like a dependent object hasn't been initialized correctly yet.