The whole JSON is not an instance of an ErrorDetail (or ErrorDetail1): it's an instance of a Root. If you explicitly specify the class to deserialize to and it doesn't match the data, it will return an empty object.
Remove the specific class, and it'll start to work:
var myDetails = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonData);