That's because you are a junior developer and you're only worth a junior engineer's pay. Sorry if that's harsh, I'm a bit blunt; but it's not a value judgement or a criticism, it's a statement of fact. Go work at a place that pays you a junior engineer's salary and learn the industry skills you need to earn a better salary.
>I've got lots of projects I've done in the last year.
That's really great, and it'll give you a leg up on the other junior programmers who are applying at places. But projects don't confer industry experience with a team, which is what places are looking for. It's a world of difference between "I've done projects on my own and I can complete them," and "I've worked with engineers, product managers, managers, designers, non technical people and together we have shipped software." All of the stuff you're doing is setting you apart from your competition, but realize your competition is for junior roles.
To answer the question:
>Is there hope for me?
Absolutely. You seem smart and driven and capable of communicating. In my 14 years of coding professionally, I've worked with people who studied communication, linguistics, a foreign language, creative writing, IT, electrical engineering, mechanical engineering, electrical engineering, music composition, etc. Some of the best engineers I've worked with had no formal training. It's totally doable. Being able to teach is a really good indicator of at understanding complex issues and being able to communicate them, all valuable skills for a software engineer.
Also, don't get discouraged during the pandemic. A lot of places are buckling down and if they do hire, it'll be an experienced person who normally wouldn't be on the market but is because of the virus. It's gonna be tough for junior engineers for a while until the economy spins back up.