Hi. You are lucky. The method I suggested earlier works in this case too, although the computations take a very long time indeed. So before running the attached notebook have a close look at it or better make a copy for reading.
Be aware that it is luck that DSolve works in this complicated case as well. It could well be that you have to use NDSolve for finding U and then Z in practical problems.
Attachments: