I've also had a chromebook with only 30 GB of slow eMMC once. Adjusting I/O caching helped noticeably:
# /etc/sysctl.d/20-flash-speed-settings.conf
# https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/
# (vm.dirty_background_ratio = 10) percent of memory to use for caching
vm.dirty_background_ratio = 15
# (vm.dirty_ratio = 20) the max percent of memory to use for caching
vm.dirty_ratio = 30
# (vm.dirty_writeback_centicecs = 5) how often the buffer is checked for work to do
vm.dirty_writeback_centisecs = 1000
# (vm.dirty_expire_centisecs = 500) sets how long something can be in the buffer
vm.dirty_expire_centisecs = 6000
And you might also want to set mount options in /etc/fstab to noatime or relatime and add commit=60 or so (default is 6).
To note that dirty_expire_centisecs and commit trade speed for data safety. But a laptop has a battery anyway.
About lack of space:
keep the system on the eMMC and mount a thumbdrive as /home? (in /etc/fstab)
Just don't do much compiling on it (or move the compiling path to RAM); i've broke a SDcard-as-home with compiling Firefox on the Chromebook.
Edit: ZorinOS is immutable, relying on flatpaks (high I/O and btrfs deduplication), no? Kinda the worst choice for such a device.