Fix for #1251: refining return type with generic type param

Turns out we need to do a bit more work to find the right TP in the overriding method
Test for #1251: refining return type with generic type param