How does your UI consume your business layer? Are you binding your UI controls to the BLL classes, or are you manually linking up the data from your classes into controls on the form?

One way to bring information like validation errors from the business layer to the UI is to raise events in the business layer that the UI will consume and be able to respond to.