> What is the key benefit of changing that to Nullable<bool>, i.e. a value type? Was that the comment you referred to from your software architect?

nope Nullable<bool>^ is !=  bool? 

bool? == Nullable<bool> because when the bool is not set you still have the nullable with HasValue = false that is the expected behavior

Nullable<bool>^ i dont know how to express this in c# but ist kind of ref bool and you would get null when the bool is null and then Nullable makes no sense as nullable is used to express null for valuetypes