Sounds like you need a player with AGC (Automatic Gain Control). I've seen a post elsewhere indicating that VLC and MediaPlayer Classic can do this. If your software has a way to use these for the playback, it might be something to look into for volume level control.
As for the frequencies varying, that one's going to be a tough nut to crack. Your DJ speakers are going to have a specific frequency profile, and will sound good as long as the source music doesn't stray too far outside of that profile. The problems arise when many different types of music are being played. Some types will sound very good at even the highest output levels, while other types of music will distort or sound poor, regardless of volume. This is why DJ's aren't just picking the music to play, but are also tweaking the EQ and volume during shows. Commercial jukebox system providers very likely do some pre-processing to audio files, before they are encoded and added to their library, to make sure they are normalized and sound good on their equipment, and/or "middle of the road" quality speakers supplied by the operator. I know from working in an FM station a couple of decades ago, a lot of audio compression was used to ensure decent sound across varying playback devices, but it comes at a loss of sound detail.
Also keep in mind that the quality of the audio file can make a big difference in playback. Mud is mud. In an uncontrolled environment, I think it's going to be difficult to get the results you are probably looking for.