1. У вас сначала идет обращение к ключам с заглавной буквой, а затем переопределение этих же ключей, но в нижнем регистре. Это специально сделано или случайно? (ключи регистрозависимые)
2. Зачем нужно переопределять массив $_POST, лучше считать что он readonly.
3. В представлении вы обращаетесь к переменной просто как к глобальной, разве не должно идти обращение к ней как к части текущего объекта ($this->VAR_NAME)?
return parent::before() вызывается после условия if. Если условие сработает - будет редирект и return проигнорируется. Если же не сработает - вызовется именно return. В чем тут трудности-то с понимаем?