@speedydad Here are a few random thoughts that might or might not have bearing.
You don't actually reference the U axes in the original drive mapping in your config.g but you do end up mapping it to drive 9 at the ed of your home all. I'm not sure but it might confuse the firmware when later in config.g you set accelerations, speeds, motor currents etc, if no drive has been mapped to that axis. So maybe try adding "U9" to your first M584 in config.g.
You haven't set micro stepping for the U axis. AFAIK the default is 16x with interpolation so it should be OK but to be safe, add "U16" to your M350 command. If nothing else, it will serve as a reminder if ever you change it in the future.
This is not really related to the motion issue you describe but you say you engage dual Z stops yet I don't see an end stop configured for the U axis in your M574. But then I'm a little confused by the G1 S1 Z500 U500 because that will stop when either end stop triggers but not both. For individual homing, I'd have thought you then need to add separate G1 moves for both Z and U. At least, that's what I do with my CoreXYUV. That is home X and U together, then X then U individually to their own individual end stops.
Anyway, moving on ... In your original M584 in config.g, you set the number of visible axes to 3 using P3. Which will be X Y and Z. So I think when you re-map the drives using M584 Z2 U3, the U axis might still be hidden and that does more than just hide it from the display. Therefore,I think you need to add M584 P4 to the start of your home all, then set it back to P3 at the end.
HTH