I was wrong, when I was looking at ProcessParameters, the build definition had not yet been saved so that's why I was only seeing 'BuildSettings' Once I deserialize them on a saved BuildDefinition, I could see all the variables.
var processParms = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters);
object obj;
processParms.TryGetValue("MyOtherVariable", out obj);
MyOtherVariable myOtherVariable = obj as MyOtherVariable;