Please consider the following simple use case:
public class Foo { public virtual int Id { get; protected set; } public virtual IBar Bar { get; set; }
Have not used the fluent NHibernate yet but seems to me what you are trying to do is map to an IUserType which you haven't told hibernate how to deal with. here is a useful example for defined usertypes in fluent.
http://blog.jagregory.com/2009/01/11/fluent-nhibernate-auto-mapping-type-conventions/