- Custom fields
As there involves some custom fields functionality for all modules in the CMS, I think it's better to use some NoSQL database like MongoDB rather than RDBMS like MySQL or Postgres.
With the help of no-fixed-structure feature of NoSQL, we can just store meta data for the custom fields for each module in a separate collection(or table in RDBMS), then we can handle the custom fields with minor efforts.
- Back-end language and framework
You have specified Yii2 in the project description, but if it's not a mandatory option, I'd better choose Node.js with Express.js.
But Yii2 with PHP still a feasible option.
- Front-end
Most bootstrap CMS themes like adminlite provides an UI interface for messages, chats, calendar and events, so it will be easy to implement these features.
- If you have an existing old system, it will be very easy for me to get better understanding of your project.
Thanks