The this instead:
var request = def.CreateBuildRequest();
request.GetOption = GetOption.Custom;
request.CustomGetVersion = "C1234";
server.QueueBuild(request);
The documentation for IBuildServer.QueueBuild(IBuildDefinition)
says:
Queues a build for the specified build definition with all default options.
I am guessing that it is not using most of the parameters from the definition passed in.
Actually, thinking about it, setting the params on the request makes sense, this is your build request, you're not changing the definition.