You're looking for MakeGenericType.
It can be used to generate the
IService<b.GetType()>
portion by doing
Type closedGenericType = typeofI<IService<>>).MakeGenericType(b.GetType())
The final piece is that alongside Get<T>(), there is a non-generic variant, Get(Type) which you use as follows:
var instance = Kernel.Get(closedGenericType);
Search "Open Generic Types" (and maybe repository) and you should find a good article or two.
--Ruben