Have you tried removing placement: top from your figure? In principle, all you need is the line
#show figure.where(kind: table): set block(breakable: true)
and removing placement: top (or explicitly setting placement: none in your case). The rest (the set rules on table.cell and so on) can be removed.