Reading the question, I wonder if there's not a misunderstanding.
Indeed, from the DDD perspective there's 1 aggregate, 3 entities, and 8 value objects. But this does not mean that there must be a combinatorial explosion of the components:
- a value object may require its own type, if it's a complex value made of more than one component (example: a monetary value is made of an amount and a currency);
- but a value object does not require you to over-engineer your solution and start to systematically create new types for
age,title,nameif these are just simple integers and strings (you can, if you'd like to add some constraints, such as age between 0 and 199, but you really don't have to).
The same applies by the way to the UML class diagram: you can model each property as a separate class that would be associated to the class that owns the property; it's a valid modelling choice that would semantically mean the same thing, but it would just make the visual representation unreadable.
So a DDD does not mean more complexity and less performance. It means on the contrary more reliability: the key is to empower the the aggregate to ensure the consistency and the invariants of all these tightly interrelated classes and objects.
Now if you like the concept, but do not like the rest of the DDD approach, for example if you'd prefer to use table gateways or active records instead of repositories, you can go for such an alternate design if you're aware of their pros and cons. You can even reuse the invariant knowledge. But it's just that you won't have the same level of control on the aggregate if your design would allow to address each entity separately.