I tested this with different players, and got different results.
With Exaile and Strawberry, everything works pretty much as expected.
With Audacious and Spotify, the signal does not get emitted on track change, only on play/pause.
With Quod Libet and Qmmp, the results are quite weird. The signal does get emitted, but rather than containing data for the new track, it always contains the data for the previously playing track (the one that has finished playing or the one the user manually switched from).
I opened QDBusViewer and connected to PropertyChanged signals on both Empress and the player in question.
For Audacious and Spotify, I saw the player emitting the signals properly with correct track info.
For Qmmp, I noticed it sometimes emits a "Stopped" playback state and no track info, and then emits another one with the "Playing" state and the new track info. I guess that's what gets Empress confused.
I couldn't test this on Quod Libet because of the following error:
Error: Unable to connect to service org.mpris.MediaPlayer2.quodlibet, path /org/mpris/MediaPlayer2, interface org.freedesktop.DBus.Properties, signal PropertiesChanged