Jelly, 17 17 18 bytes
!P
ÇṗLÇ⁼¥ÐfÇḢḟ1ȯ0ÇṗLÇ⁼¥ÐfÇḢḟ1ȯ0F
A monadic link taking and returning a list of the numbers (sticks to the one factorial per number option)
How?
A golfed (although independently written) version of Pietu1998's solution.
!P - Link 1, product of factorials: list
! - factorial (vectorises)
P - product
ÇṗLÇ⁼¥ÐfÇḢḟ1ȯ0F - Main link: list e.g. [3,2,2]
Ç - call the last link (1) as a monad 24
L - length 3
ṗ - Cartesian power [[1,1,1],[1,1,2],...,[1,1,24],...,[24,24,24]]
Ç - call the last link (1) as a monad 24
Ðf - filter keep if:
¥ - last two links as a dyad:
Ç - call the last link (1) as a monad [1,2,...,24!,...,24!^3]
⁼ - equal?
Ḣ - head
ḟ1 - filter out any ones
ȯ0 - or with zero (for the empty list case)
F - flatten (to cater for the fact that zero is not yet a list)