Hi Sean,
Sorry there's been such a delay to get back to you. I believe the issue you're seeing has to do with how custom units, like little h, are handled in yt's unit system. When you create a YTQuantity, it is attached to a UnitRegistry object under the hood, which keeps track of all the possible unit conversions. When datasets are loaded or cosmology calculators created, a new unit registry is created that keeps track of the value of h. When you make something via YTQuantity, you can attach an existing UnitRegistry with the registry keyword, but if you don't, the default that is created has little h set to 1.0. For example, you can see this by doing:
import yt
r1 = yt.YTQuantity(100, 'kpc/h')
from yt.utilities.cosmology import Cosmology
co = Cosmology(hubble_constant=0.7)
r2 = co.quan(100, 'kpc/h')
What you'll see is that only r2 reflects h=0.7. The co.quan command is a helper to create unit quantities using the cosmology calculators unit registry. If you use that in place of YTQuantity, that should help.
One last thing I'll note. The cosmology calculator does not properly convert between the comoving and proper frame. For example, if you do:
x = co.quan(1, 'kpc')
This will give you values of x and x_com that are equal, which is only correct at z = 0. Proper and comoving can only be converted correctly when creating quantities from a loaded dataset at a specific redshift. For example,
ds = yt.load(...)
x = ds.quan(1, 'kpc')
Anyway, sorry to be so long-winded. I hope that helps.
Britton