Im fact, this sentence is OK. However, since it uses the present pefect tense, the better and more correct time expression would be' over the past 20 years'. This clearly highlights a timeframe from the past to now. "The 20 years' does not clearly identify if those years refer up to present day.
As for the word "seen", this is correct. We can use "seen" or in this case "has been" to mean "experience or witness" and it does not have to refer to a person.
E.g. This stadium has been many exciting football matches.