The code itself is fine and therefore compiles successfully. However when you try to deploy the contract in 2_deploy_contracts.js it gives an error.
Your contract requires one constructor argument uint8 _numProposals which you need to provide in 2_deploy_contracts.js. So instead of something like deployer.deploy(A) you need something like deployer.deploy(A, ...
IIRC, solc 0.5.17 is pre-Byzantium and you need to transition to 0.5.2? (not 100% sure which one). Perhaps a kind soul will chime in with the exact version cutoff or else check the release notes for the first release with Byzantium support.
You can instruct truffle to use a specific solc version truffle-config.json. You may have to refactor the contract ...
I had the same issue and found that by using console.log(accounts) in seed-exhcange.js only one account was making it to this point.
So I checked truffle-config.js with some console.log() throughout.
I found that I had put a space after the comma between my PRIVATE_KEYS in the .env file.
After removing that space everything worked great.