Насколько я знаю, вы должны получить атрибут с поля. Вы бы использовали:
var field = typeof(Header).GetField(value.ToString());
var old = field.IsDefined(typeof(OldProtocolAttribute), false);
Или получить целый массив:
var attributeType = typeof(OldProtocolAttribute);
var array = typeof(Header).GetFields(BindingFlags.Public |
BindingFlags.Static)
.Where(field => field.IsDefined(attributeType, false))
.Select(field => (Header) field.GetValue(null))
.ToArray();
Очевидно, что если вам это нужно часто, вы, возможно, захотите кэшировать результаты.