See if this works. Create a function that can take in your object and return a property back:
Func<SafetyData, object> orderByValue = sd => typeof(SafetyData).GetProperty("Year").GetValue(sd);
Now order by that function:
.OrderBy(safetyData => orderByValue(safetyData))