Quando você tem vários valores em uma chave primária, você precisa fazer referência a ela de forma diferente como uma chave estrangeira.
Basicamente, quando você diz
FlightID char (20) REFERENCES Flight(FlightID) ON DELETE CASCADE,
O PostgreSQL verifica essa chave primária, que não existe (já que a chave primária nessa tabela é (flightid, flightdate)).
Então, solte as
REFERENCES
cláusulas ao fazer referência à tabela de voo e adicione FOREIGN KEY (FlightID, FlightDate) REFERENCES Flight (FlightID, FlightDate)
Da maneira que você tem em algumas das outras definições de tabela.