it's not so complicated, but not for beginner.
I did it once a long time ago. I'll retry if you don't manage to do it.
There are 2 steps.
1st, create batocera partitions.
just as you did except :
- partition SHARE (n+1) must be exactly after the partition BATOCERA (n), because this is how batocera works, it get the system partition, then choose the next partition for user data.
- i recommand to use ext4 for n+1 partition (data partition) (not sure it works otherwise)
if not, i think, you have to create a small n+1 partition in ext4, then, a fat32 anywhere, and in the batocera menu, choose external disk as data partition.
2nd, under ubuntu, add a file in /etc/grub.d/, for example, name it 15_batocera
and it must contains something generating the containt of grub.conf (by default on the batocera usb key)
then update-grub2 to regenerate /boot/grub/grub.cfg
this step is easier if you just modify file /boot/grub/grub.cfg directly, but while the command update-grub2 is run automatically sometimes during upgrade, one day, it will remove your changes.