Тут есть несколько не совсем корректных мест.
Но, если говорить об основной проблеме, то нужно смотреть, что передается в метод getPerson.
this.route.params - это Observable и при изменении роута, там приходят новые значения.
Так же не следует создавать сайд-эффекты (влиять на переменные все самой функции) на мап-операторе, ошибки связанные с этим достаточно сложно отлавливать.
Я бы переписал этот код так:
ngOnInit() {
this.route.params.pluck('id').subscribe(id => {
this._PersonService.getPerson(+id).subscribe(person => this.person = person);
});
}
Все еще возможно, что это не решит проблему, но поможет двигаться дальше.