Well there's not much left that could be wrong! If it runs fine at 1600 and above with expected vacuum but rich at idle with low vacuum the issue must be a variable not a constant. So something is changing the mixture at speeds below 1600. The only thing not mentioned so far that can change both mixture and timing is the knock sensor. Not to say the sensor is bad as it only happens at low rpm. So what could make it knock at low rpm? High compression (get compression test results), retarded timing (checked OK), poor fuel quality (is it being fed fresh fuel?), spark plug gap ( ensure .045 gap not .060 plugs fitted).