OK, I see.
If you have the hardware available, then I would say it's generally a good idea to have dedicated master-eligible nodes. Under https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#dedicated-master-node there's some discussion of why it may be a good idea to run dedicated master-eligible nodes.
For Kibana, the simplest way to load-balance over multiple Elasticsearch nodes is by running a co-located coordinating-only Elasticsearch node, as described at https://www.elastic.co/guide/en/kibana/current/production.html#load-balancing-es
APM Server and Ingest node are both CPU-heavy. The more you can allocate to them the better, so it may be better to run them on dedicated machines.
So (without knowing the finer details of your environment) I'd probably go with something more like:
- 3 master-eligible nodes
- 2-3 dedicated Ingest nodes
- 2-3 Kibana servers with local coordinating-only Elasticsearch nodes for load-balancing
- 2 dedicated APM Servers
If you intend to run ML or Transforms, you might also run those on the Ingest nodes.