A properly encapsulated domain object won't work (with neither ORM nor doc db) without workarounds which might bite you on the long term. The most clean but well... boring solution is to use a memento for persistence purposes.
The domain object will provide the memento and will use a memento to restore itself. The persistence will work only with that memento and you can do everything you want with it, because it's a DTO.
At the same time, if you're not already doing it, I suggest to go CQRS (and maybe Event Sourcing).In both cases you'll have one write model to be used by the Domain and at least one read model to be used by everyone else. It requires more code for sure, but on the long term it simplifies things because you'll always use models dedicated for a single purpose instead of one model for everything.
About unit of work stuff, model the process via domain events and sagas. You'll have to deal with eventual consistency (psychological issue) and idempotency (technical issue), but your app will be very flexible and maintainable.