The issue is there are two versions of every sprite.
At the top you have a bunch of global sprites. These are the ones you are drawing.
But the code that loads the textures looks like this:
if (background.loadFromFile("Assets/brick background2.jpg"))
{
sf::Sprite backgroundSprite(background);
}
It loads the texture, but then creates a temporary sprite called backgroundSprite and assigns the texture to it, instead of using the global backgroundSprite. (This is called variable shadowing, where two different variables have the same name and one hides the other)
At the closing brace in that code, the second backgroundSprite (the one with the texture) is deleted and only the original global one remains (without the texture).
Try this instead:
if (background.loadFromFile("Assets/brick background2.jpg"))
{
backgroundSprite.setTexture(background);
}
(Same for the other sprites)