Yeah, so if the contract is empty, it compiles, so the problem is not the compiler, I still think that you should build the basic structure of a contract, just add 1 function that returns ‘hello world’ (you can also use the template that is created by EOS Studio).
IF you succeed to compile a fresh contract, there is a problem with the syntax of your contract, I advice to follow the same process, with your same contract, just leave it with 1 function, if it compiles, add more functionality and compile again, and so on.
The problem could be in a bad declaration that we are not seeing, thats why the best way to debug the error, is just to test all the functions until one trigger the error.
Carlos Z