Solution not being updated at solving Picard iteration of coupled problem (Question changed)

There seem to be errors in the implementation. I would suggest going through the tutorials and approaching the problem step by step.
For example in the iteration loop: In the 1st problem you need to compute for a solution which would be a Function object and not a TrialFunction. So you should pass uN instead of su when asking to solve(because you have changed su to a TrialFunction). After solving the 1st problem you have to split the solution to form the new sub-functions (since it is MixedFunction) and then you can proceed with updating/assigning the solution to be used as a ‘known’ in the 2nd problem, and so on.

It would be difficult to read your question this way. People who answer regularly prefer a Minimum working example to replicate your issue (see this) sure someone with more expertise will pass by to answer in detail.

Sid