That is the issue. I am only using two tweens, active and idle, in order to reduce the amount of code needed.
At the moment a combination of killTweensOf() and set() to reset the position seems to be working in my demo. I will try applying this to my main project after work tomorrow.
If this doesn't work I will try your method of creating individual tweens.
Thanks for the advice Sahil.