Well just for fun, and in an exercise of sheer bloody-mindedness and pedancy, I thought I would have a go at this one using
the grid system, previously put together by SteveJG and Scott Ferguson, which I also used in my Communications Baord app for my school. Their original was based upon a grid of 36 squares, whilst for this exercise I found I needed to take the grid up by 2 fold to 576 squares! The idea is that you group (list) together the squares which cover each of the items you wish to select, and any other squares not allocated will suggest doing something - in this case to pick a slice. The long winded part is putting together the list of grid squares for each slice, but once done, it is done. I couldn't see a way of doing this programatically, due to the underlying image and irregularity of each slice, but then that is the point of doing it with a grid, you can be fairly specific, and you don't have to do any complicated maths to work it all out. To get the "leftovers", I simply removed all the items already in the slice lists, leaving what hadn't been allocated, and added this list to the slice lists.
BLOCKS

SCREENS

with grid showing

I used Inkscape to make up the grid pattern (create a rectangle, select it, then Extensions > Render > Grids > Grid)
For this to work the canvas needs to be square, with fixed dimensions, i used 300x300 pixels, and this still works with responsive sizing
The real trick in the blocks is the conversion of the x/y coordinates to a grid number (I believe Scott Ferguson gets the kudos for working this out)
Just to help, if you want a grid of 36:

a grid of 144

incidentally your use the numbers in the multiplication e.g 6 / 12 / 24 as the values when creating the grid in Inkscape :)
aia attached