No sabría que decirte. El error es tan explicito como tu explicación.
Se me ocurre que tal vez choquen los tipos de datos. Cuando defines un campo como serial, realmente el tipo de dato asignado es biginteger. Y lo estas cruzando con un integer.
O para efecto de pruebas, prueba esto:
Código SQL:
Ver originalINSERT INTO tb_evals_evaluaciones (evals_eval_id,evals_fecha,evals_mat_id,evals_per_id,evals_prog_id,evals_hr_id,updated_at,created_at)
VALUES (1, '10-02-2016','7'::INTEGER, 14, 1, 1, '2016-02-09 17:14:58', '2016-02-09 17:14:58');
Estoy asumiendo efectivamente que el registro 7 de la primera tabla existe.