We extend the recently introduced Bayesian framework `Generative Pulsar Timing Analysis to incorporate both pulse jitter (high frequency variation in the arrival time of the pulse) and epoch to epoch stochasticity in the shape of the pulse profile. This framework allows for a full timing analysis to be performed on the folded profile data, rather than the site arrival times as is typical in most timing studies. We apply this extended framework both to simulations, and to an 11 yr, 10 cm data set for PSR J1909$-$3744. Using simulations, we show that temporal profile variation can induce timing noise in the residuals that when performing a standard timing analysis is highly covariant with the signal expected from a gravitational wave (GW) background. When working in the profile domain, these variations are de-correlated from the expected GW signal, resulting in significant improvement in the obtained upper limits. Using the PSR J1909$-$3744 data set from the Parkes Pulsar Timing Array project, we find significant evidence for systematic high-frequency profile variation resulting from non-Gaussian noise in the oldest observing system, but no evidence for either detectable pulse jitter, or low-frequency profile shape variation. Using our profile domain framework we therefore obtain upper limits on a red noise process with a spectral index of $gamma = 13/3$ of $1times10^{-15}$, consistent with previously published limits.