In heavy-duty vehicles, multiple signals are available to estimate the vehicle's kinematics, such as Inertial Measurement Unit (IMU), Global Positioning System (GPS) and linear and angular speed readings from wheel tachometers on the internal Controller Area Network (CAN). These signals have different noise variance, bandwidth and sampling rate (being the latter, possibly, irregular). In this paper we present a non-linear sensor fusion algorithm allowing asynchronous sampling and non-causal smoothing. It is applied to achieve accuracy improvements when incorporating odometry measurements from CAN bus to standard GPS+IMU kinematic estimation, as well as the robustness against missing data. Our results show that this asynchronous multi-sensor (GPS+IMU+CAN-based odometry) fusion is advantageous in low-speed manoeuvres, improving accuracy and robustness to missing data, thanks to non-causal filtering. The proposed algorithm is based on Extended Kalman Filter and Smoother, with exponential discretization of continuous-time stochastic differential equations, in order to process measurements at arbitrary time instants; it can provide data to subsequent processing steps at arbitrary time instants, not necessarily coincident with the original measurement ones. Given the extra information available in the smoothing case, its estimation performance is less sensitive to the noise-variance parameter setting, compared to causal filtering. Working Matlab code is provided at the end of this work.