No se entiende bien la estructura de relaciones, pero por lo que se ve, no estás definiendo correctamente el sentido de las FK.
Partamos de la base que una FK es un campo cuyo valor
hace referencia a la PK de otra tabla.
Esto quiere decir que si la PK de la tabla referida está compuesta por
un sólo campo, la FK
será un sólo campo también; pero si la PK es compuesta por
más de un campo,
todos los campos de esa clave
deben tener su correspondiente campo en la tabla donde figuran como FK.
Esto:
no es válido si la tabla COMPANIES tiene una clave compuesta por un sólo campo.
Lo que debes tener en cuenta es que
cada relación FK debe ser definida independientemente. En tu caso, si `id_company` e `id_related_company` son FK que apuntan a
una clave simple, requieren
dos declaraciones de FK independientes.
No existen en MySQL declaraciones de FK globales para varios campos al mismo tiempo.
¿Se comprende la idea?
Esto no es únco de MySQL. Es parte de la definición del modelo relacional.