Se mi posso permette un consiglio che ti risolve anche il problema della deep copy, e aumenta le prestazioni: non fare array innestati, fallo di profondità uno.
Per esempio, partiamo dalla tua tabella, di dimensione X (3), Y (9), Z(10).
Fai che table sia un array di dimensione 270 (X*Y*Z).
Per accedere all'elemento k, j, n, dovrai accedere
table[k * Y * Z + j * Z + n]
Le performance aumentano alla lettura perché hai un solo array di 270 elementi contigui in memoria, invece che 27 da 10. Inoltre, sarai sicuro che tutto l'array sia in cache (L1/L2/L3), invece che solo alcuni degli array. E spostarsi dentro l'array diventa solo uno shift del puntatore di massimo 270 * size del contenuto, invece che saltare avanti e indietro in praticamente tutta la memoria.
Comunque, se ti interessa l'argomento, internet parla tanto di multidimensional array vs flat array ;-)
E, incidentalmente, risolve il tuo problema