Either your posted code doesn't match what you've implemented or this line shouldn't compile.
soundsPly->play(resMan->getSoundBuffers().soundBuffers[0]);
getSoundBuffers() returns a vector, so you can't be accessing a property called soundBuffers.
Hard to say now, what your actual code is, but if getSoundBuffers really does return a std::vector<sf::SoundBuffer>, you're always return a copy of the the whole vector, which then only exists temporarily and will be deleted after the call to play() is finished.
So the temporary sound buffer copy gets destroyed, before it's actually played.
To fix this, you'd need to return a reference to the sound buffer.
Additionally, I highly recommend to not misuse the singleton pattern for glorified globals. Instead use dependency injection, meaning to pass the resource manager and sound play via constructor to as few classes as possible.