To avoid the error message "ThermodynamicData::quant: t is not a real number", we could use Quiet@FindRoot[...]
For a case like this: H(Temp) + b * Temp = c, we could define a function to calculate the enthalpy that only accepts numbers and thus avoid the first evaluation H[t] with t as a symbol, wich generates the error. For example:
H[Temp_Real] :=
QuantityMagnitude[
ThermodynamicData["Water",
"Enthalpy", {"Pressure" -> Quantity[P, "Pascals"],
"Temperature" -> Quantity[Temp, "Kelvins"]}]]
other form is
H[Temp_/;NumberQ@Temp]:=QuantityMagnitude[
ThermodynamicData["Water",
"Enthalpy", {"Pressure" -> Quantity[P, "Pascals"],
"Temperature" -> Quantity[Temp, "Kelvins"]}]]
Pressure could also be included and tested in the H function.
As an example with the data you give
In[1]:=Clear[H, c];
H[Temp_Real] :=
QuantityMagnitude[
ThermodynamicData["Water",
"Enthalpy", {"Pressure" -> Quantity[1.5*^7, "Pascals"],
"Temperature" -> Quantity[Temp, "Kelvins"]}]];
c = H[584.113] + .1*584.113;
FindRoot[H[t] + .1*t == c, {t, 500.0, 610.0}] Out[1]:={t->584.113}