An easier and more flexible way of doing this than using IComparable is to order the objects as you need and take the first one. If you need the highest then you just need to use OrderByDescending.
var lowest = ModelEnergyCalculator.ModelTariffQuotes
.OrderBy(m => m.GasFinalRate)
.FirstOrDefault();