Okay, here's what I did to get it working:
1) Add the following lines to /etc/X11/Xinit.d/40xmodmap and also to the top of /etc/X11/Xsession.d/90keylaunch (you may only need to add it to keylaunch, but adding it to both definitely works):
xmodmap -e 'keycode 42 = XF86PowerDown'
xmodmap -e 'keycode 47 = Return'
xmodmap -e 'keycode 98 = XF86Mail'
xmodmap -e 'keycode 37 = Menu'
xmodmap -e 'keycode 48 = XF86Start'
xmodmap -e 'keycode 96 = XF86Calendar'
xmodmap -e 'keycode 97 = telephone'
This will remap the buttons on the Zaurus to something that makes more sense than the default mapping.
2) At the bottom of /etc/matchbox/kbdconfig is a section called "Shortcut keys for collie". I changed it to look like the following, but you can customize it to whatever you want the buttons to do:
# Shortcut keys for collie
XF86Calendar=!$gpe-calendar
telephone=!$gpe-contacts
XF86Start=!matchbox-remote -desktop
telephonerecorder=!$gpe-todo
XF86Mail=!$gpe-sketchbook
Escape=close
Edit: It seems (at least on my system, which is running with / on an SD card, which could cause this I suppose) that /etc/matchbox/kbdconfig gets overwritten on reboot. A perfectly good (probably better in fact) workaround is to copy /etc/matchbox/kbdconfig to ~/.matchbox/kbdconfig and then edit the above lines.
3) Make sure you don't have a .keylaunchrc floating around in your home directory. I had one and it caused X to crash when I logged in.
That's all so far, if I come up with any other neat little things that make this even better, I'll post them. I'm delighted with GPE, especially now that it works this way.
Edit: todo key not working right now, finding problem.
Edit2: fixed
Perhaps tomorrow I'll try playing around with /etc/gpe/key-layout and see if I can get the graphical config tool to show the Zaurus buttons in roughly their correct places.