This is kinda weird? Wouldn't it make more sense to put this configuration file in /sites-enabled/ to load it? Usually, Certbot handles all the stuff with this file, so maybe Certbot did it like that, but I find it kinda weird..
Not really anything strange with your configuration.. What's the output of apachectl -S ?
This one is probably the issue. Usually it's a good idea to have ssl.conf set some defaults, but it also has the same virtualhost as the ~le-ssl.conf file. You should put a different hostname in the ServerName directive of ssl.conf (e.g. example.com or something, as long as it isn't a real website), so Apache will use the ~le-ssl.conf file for your site instead of ssl.conf.
That's because without a ServerName it'll inherit the hostname from somewhere else, in this case the actual hostname of your site. Which was double with the configuration in the ~le-ssl.conf file. But because ssl.conf was loaded earlier, it probably took precedence somehow, overruling the virtualhost in the ~le-ssl.conf file.