Your texture needs to be kept alive for the whole duration of the rendering, including the display call, so you can't/shouldn't create it locally inside a function.
Try to load the texture as member of the Level class.
Additionally, if you plan to inherit from sf::Drawable keep in mind that draw() is actually defined as const, so you can't modify e.g. the Level class itself.