Чтобы заработала браузерная "Назад" браузеру нужно знать что был переход по маршруту.
Т.е. нажатие на таб должно изменять адрес в командной строке и изменилось window.history
В спа фреймворках удобной абстракцией для этого служит роутер.
В ангуляре это будет выглядеть примерно так
https://ng-run.com/edit/zmORlCu2qJ5hI5G7Ggbk
Насчет заполненности, в данном примере при переходе компоненты табов дестроятся и данные пропадают.
Возможные решения - заставить роутер удерживать в памяти компоненты или хранить данные не в компоненте.
Второй вариант проще, можно например реактивную форму держать в сервисе, только не забыть уничтожить ее, когда станет не нужна. Или хранить просто данные с формы в компоненте. Если хранить в локалсторадже, то данные сохранятся даже если перезагрузить страничку.
upd:
Можно сделать все в одном компоненте при желании.
Сделать роут вида
{ path: 'tabs/:tab', component: TabsComponent },
А в самом табс следить
route.params.subscribe(({ tab}) => { ... })