Basically, you should only create one sf::Font object for each font you want to use, and only create it once (not recreate it every single frame). If multiple sf::Text objects should use the same font, just make them use the same font, don't try to load a new one every time (which isn't what your code does, but it seems to be what you think it's doing).
To be more concrete, in your initialization code, ie the code that runs exactly once at the beginning, you need to declare your sf::Font object (or a class with an sf::Font member or something like that), and call .loadFromFile() on it. Then, in your game loop, ie the code that runs every single frame, which processes events and does clear/draw/delete, you must call draw() on every sf::Text object (and other drawables) that you want to see on the screen.
Whether the sf::Text objects should be created and positioned during initialization or in the game loop depends on whether they're going to change from frame to frame. From what I saw skimming through your code, they don't change at all right now, but if you expect them to be changing in the future it's reasonable to have them in the game loop.