My solution, also showing the sums
Method:
A tally is kept of the numbers used in each row and column.
Starting with the bottom row, the available numbers are permuted.
For each valid arrangement, the maxima are checked to match the spec.
If the row is good, repeat for the next row up, until the top row is done.
Lastly, check the maxima for each column against the spec.
If they all match, there is a valid solution.
Found by recursive algorithm, before another answer was corrected. The solution is unique.