Everywhere you had get_assessments_for using polymorphism was far better than calling each subclass of Questionnaire's differently named methods, which your refactoring added. In the project description, I think what @efg meant was that get_assessments_for() was simply a bad name, not that you should get rid of the polymorphism (which is a great thing).

The solution is easy: just roll back these changes and rename get_assessments_for to a better method name. Perhaps @efg can suggest a better name.