Create USB drives with child-specific partition names.
Create mount points for those drives.
Define an entry in /etc/fstab which uses the UUID of each USB to mount to that child's assigned mount point (child's name ?) automatically with full privileges for that child.
Then when you create a User ID, define the ${HOME} for each child on their USB, keeping the ${HOME} separate from a ${SHARED} below the USB's root.
Under /home, you will need to create a symlink to the actual HOME on each USB drive.
The tricky part is the need to tell systemd that the drive must be mounted before it allows that user to login.
I don't know the specifics to control that for each user individually.
Maybe a more knowledgeable user can assist with that.
Hope that helps!
Other stuff to come later regarding security and limiting access to the stuff you want protected, which is hopefully "contained" in limited locations. 
Example of my own fstab entry for a USB stick:
UUID=7CB8-B781 /media/ericthered/SLIP_USB vfat user,owner,utf8,rw,suid,dev,umask=000,relatime,codepage=347,iocharset=iso8859-1,shortname=mixed,showexec,utf8,errors=remount-ro,uhelper=udisks2,nofail,noauto 0 0
I have the following for my own HOME on a non-root partition, but you need something different that is AFTER login, specific to each child. For what it's worth,
system/lightdm.service.d/override.conf:RequiresMountsFor=/DB001_F2
system/lightdm.service.d/override.conf.lightdm.service.OasisMega1:RequiresMountsFor=/DB001_F2
system/sysinit.target.d/override.conf:RequiresMountsFor=/DB001_F2
system/sysinit.target.d/override.conf.sysinit.target.OasisMega1:RequiresMountsFor=/DB001_F2