Во-первых, не понимаю зачем делать ExtendedClass возвращаемым типом в реализации метода modify(). Это не переопределение метода, а ошибка.
Делайте так:
class ExtendedClass : AbstractClass
{
public override AbstractClass modify()
{
_value++;
return this;
}
}
Все будет работать, как вами и задумано.
Во-вторых, отвечу на ваш вопрос. Существует способ указать тип возвращаемого значения в методе. Это можно сделать при помощи generic'ов: generic-методов или generic-типов. Но в данном случае, никакой необходимости в этом нет.