I presume that your parser generating XML code in project 10 worked correctly, so we can exclude the possibility of a flawed parser. A good way of narrowing down the problem, is to compare your VM code with the code generated by the official Jack compiler.
I haven't looked into the code in detail, so there might be other problems. There are a couple of obvious things, however:
Your return code is not correct:
call Main.convert 1
pop temp 0
return // there is no return value on the stack here
push constant 0
return // double return; unreachable code
Also you are now emitting function statements twice:
function Main.convert 2
function Main.convert 3
Looking into your repo:
1. You are not supposed to issue return statements yourself. The Jack language requires that returns are explicitly defined in the source code. If you look at the sample code of Pong in project 11, you will see that every function, method or constructor have their return statement in the code. Constructors end with return this, functions and methods end with either return <expr> or a simple "return;" in case of void functions. Therefore you shouldn't issue your own return statements in compileSubroutine. This should all be handled by your compileReturn. (Please note that in other languages, there is no explicit return for void functions or constructors required, so for such languages you would need to track if the source code contains already a return statement.)
2. The treatment of return without expression should be done inside compileReturn. If there is no expression, you emit a zero constant prior to the return statement.
3. I'm not sure how your code ended up with 2 consecutive function statements in your VM code, but that is obviously wrong
Remark: Keeping track of the return type can help to issue syntax errors, for example if you have a void function that ends with return <expr>, or a non-void function that doesn't return a value. This is not required for a correct compiler though. You can (or should) assume that the source code is correct. Only after you have a correctly working compiler, you may consider to add in further functionality - keep it simple.