My problem now is that the VehicleDealer and the VehicleBuilder and of course the concrete Product classes (Car and Motorbike) all need to have attributes for all of the parameters I can pass around.
What if you had the notion of a VehicleSpec object that can respond differently to each product class? It will also only allow setting attributes depending on who the caller is (e.g. a Car-type class has no place dictating how long the hand clutch would be). Then each product class will only need a single attribute for the specification it needs.
Just my 2cents. Not sure which direction this will push your code in.