I will simplify my code to make it easier to digest 
My routing looks like the below:
// app-routing.module.ts
const routes: Routes = [
{
path: 'posts',
loadChildren: './posts/posts.module#PostPageModule',
canLoad: [AuthGuard]
},
{
path: 'users',
loadChildren: './users/users.module#UserPageModule',
canLoad: [AuthGuard]
},
...
// posts.module.ts
const routes: Routes = [
{
path: '',
component: PostPage
},
{
path: 'post-detail/:postId',
loadChildren: './post-detail/post-detail.module#PostDetailPageModule'
},
]
// users.module.ts
const routes: Routes = [
{
path: '',
component: UserPage
},
{
path: 'user-detail/:userId',
loadChildren: './user-detail/user-detail.module#UserDetailPageModule'
},
]
To traverse from http://localhost:8100/home to http://localhost:8100/posts:
<!-- home.page.html -->
<ion-button [routerLink]="/posts"></ion-button>
To traverse from http://localhost:8100/posts to http://localhost:8100/posts/post-detail/123
<!-- posts.page.html -->
<ion-item (click)="navigateToDetail(post)"></ion-item>
// posts.page.ts
public navigateToDetail(post: Post): Promise<void> {
this.router.navigate(['/posts/post-detail', post.postId]);
}
To traverse from http://localhost:8100/posts/post-detail/123 to http://localhost:8100/users
<!-- post-detail.page.html -->
<ion-button (click)="onNavigateToUsers()"></ion-button>
// post-detail.page.ts
public navigateToUsers(): Promise<void> {
this.router.navigate(['/users']);
}
To traverse from http://localhost:8100/users to http://localhost:8100/users/user-detail/456
<!-- users.page.html -->
<ion-item (click)="navigateToDetail(user)"></ion-item>
// users.page.ts
public navigateToDetail(user: User): Promise<void> {
this.router.navigate(['/users/user-detail', user.userId]);
}
Traverse from http://localhost:8100/users/user-detail/456 to http://localhost:8100/posts/post-detail/123
<!-- user-detail.page.html -->
<ion-item (click)="navigateToDetail(post)"></ion-item>
// user-detail.page.ts
public navigateToDetail(post: Post): Promise<void> {
this.router.navigate(['/posts/post-detail', post.postId]);
}
Once I am on http://localhost:8100/posts/post-detail/123 and press the back button
<!-- post-detail.page.html -->
<ion-back-button defaultHref="/home"></ion-back-button>
I am brought back to http://localhost:8100/posts (incorrect!)
I expect to be brought back to http://localhost:8100/users/user-detail/456 because that was my previous page.
@max Please let me know if you need any additional information.