Registering listeners work according to RF docs when tests is executed using our ./bin/robot (with ./bin/robot-server running the test fixture). In listener it is possible to access the thread local Selenium instance from Selenium2Library and execute its capture screen keyword.
But I cannot guess for sure, how to add that screenshot into robot framework test log. I'm sorry that I'm currently unable to try that myself and write an example.