you are doing it right, u simply need to create and then after say it is required for mission... once is enough... my only guess is u have a conflicting script like maybe a traffic loader or gta has reached the vehicle limit for the world and the spawn failed. Not sure the issue but you could test with out other scripts installed to be sure it isnt a conflict with another script
Strange, I even tried spawning the Vehicle under the player so It gets loaded, then setting it to be a required Vehicle and then teleporting It back to where It is supposed to be.
Now I have no clue at all what this is. I post my code:
Vehicle vehicle = GTA.World.CreateVehicle(Model.FromString(v.Name), player.Character.Position);
vehicle.isRequiredForMission = true;
After my little debugging, it turns out, that the error occures after "1" and before "2" so the one line above created Vehicle at the player.
I have no Traffic Loader installed so It must be your second point because of the randomness of the success. Any Ideas what I could do, this isn't normal so I must have done something wrong.