All of the missing environment variables are present in the output of `systemctl --user show-environment` run from a gnome-terminal window, so the problem *might* just be that emacs.service is getting started too early, in which case it could probably be fixed with some After= directives, but I don't know what those should be.
zw