What I would do is create a part in the Center of vehicle and have it set as the PrimaryPart. Then if the vehicle is welded to that part, have the PrimaryPart CFrame set to the spawn place but add the height off the ground.
local y = 10
self.Model:SetPrimaryPartCFrame(Spawn.CFrame * CFrame.new(0, y, 0))
After messing around, I decided that I would find the distance from the current PrimaryPart to the center as for some reason the scripts revolved around the seat being the PrimaryPart. I did basically the same thing you said.