It's just an opinion.
Domain objects are part of business. Same for contextes and repositories.
In fact, my point is OR/M is an abstraction over a relational database or other kind of stores so these can act as an object-oriented store.
That's OR/M throws away data layers in modern software solutions.
Repositories, domain context, domain objets are part of business layer.
Unit of work is a software design pattern and it's not only for working with databases, or a data layer, but it can manage more things, like a networked transaction. I'd suggest this should be included in some namespace like "YourCompany.YourProject.Patterns.UnitOfWork" or something like that.
A service has nothing to do with data. I'd like to suggest a "YourCompany.YourProject.Services" namespace.
Another point is your POCOs seems to work as DTO too, because you're using everywhere, even for passing data through layers and/or tiers. This could be ok in a naked objects implementation or something like that, but you'll need to pay attention to the fact of using domain objects as DTO, because they may contain properties, information, behaviors or OR/M proxying hidden members that may affect objects' weight - memory usage -.
Taking last paragraph fact, I'd suggest you to work with DTO in any layer on top of business, so your services would return DTOs with the specific range of properties that service consumers would need to work fine.
DTO, patterns' implementations and such things shared in all projects part of your solution should be living in some project called "YourProject.Shared" and this assembly mustn't reference to any layer: it must remain layer-neutral, so referencing it everywhere doesn't force to have useless dependencies.
Well, this is my opinion and way of working in my projects.