Проще говоря, вы путаете пути и имена файлов.
Проблема в том, что если вы можете поставить под сомнение догадку, у вас, вероятно, есть папка с вашим именем файла, и вы пытаетесь сохранить файл с тем же именем, которыйWindows запрещает
Ваш код подправлен
var image = $"{obj.ImageName }.jpg";
// get the path, and only the path
string path = HostingEnvironment.MapPath($"/Images/{ImageType}/{ID}/");
// Create directory if needed (from that path)
Directory.CreateDirectory(path,image);
...
// now create the correct full path
var fullPath = Path.Combine(path,fileName);
// save
img.Save(fullPath, ImageFormat.Jpeg);