According to your config in the launch file, you are mapping in the odom frame, so you only use odometry. Accumulated error will cause a drift in the position estimate. So errors when re-visiting known areas are to be expected.