Я столкнулся с этим пару лет назад, когда начал заниматься FNH.Это один из немногих сценариев, которые я видел, когда FNH Automapping не «просто работает».
Подход, предложенный мне в то время, который я успешно использовал (однако с сущностями, а не с компонентами) - создавать пустые промежуточные объекты и ссылаться на них в классе-потомке.
В вашем случае вы можете создать два новых пустых класса, которые наследуются от BarComponent (скажем, PrimaryBarComponent и SecondaryBarComponent).
Затем, в вашем классе Foo, объявите их как:
public PrimaryBarComponent PrimaryBar { get; set; }
public SecondaryBarComponent SecondaryBar { get; set; }
На мой взгляд, это kluge, но он отлично работает с сущностями и списками сущностей и не требует каких-либо переопределений илиусловные обозначения.
Я никогда не использовал компоненты с FNH, поэтому я не знаю, сработает ли подобный подход, но его, возможно, стоит изучить.