I think this is an oversight in Interpolations. Unitful interpolation works fine for Gridded interpolation as shown in the tests, the trick there is that both positions and values are arrays, not ranges. For your example here:
Xs = collect((0:0.1:5)u"m")
Ys = Xs .^ 2
itp = LinearInterpolation(Xs, Ys)
itp(5.0u"inch")
The problem is that currently scaled interpolation does not work, lets see if this PR to fix it is accepted, then this will work:
Xs = (0:0.1:5)u"m"
Ys = Xs .^ 2
sitp = scale(interpolate(Ys, BSpline(Linear())), Xs)
sitp(5.0u"inch")