My guess would be that you are registering the listener for a scene copy (or maybe the original), but then you are putting a different scene copy on air.. When you call getSceneByName that gets a new scene copy unless you pass False as the final optional argument. The listener your register is only for the specific scene copy that you register it for.
If you can post a sample of your code we might be able to spot the issue?
#XPression