Is it possible to split the domain objects from the business logic for manipulating them? So you have classes describing the data, containing relatively primitive operations, and then your business layer is more actions on the data - often using several different classes in one action.
You then end up having four assemblies:
UI /
Business logic | Domain classes
Data layer \
So all three layers use the domain classes as common terminology, effectively.
I've seen this work pretty well - it does mean that your domain classes typically become slightly "dumb", although they can still contain relevant logic around some validation etc for aspects which are independent of other classes.
Of course, there are plenty of alternative approaches :)