It's always best if the source material is as uniform as possible as to resolution and frame rate. If lots of mixed clips, you would want to set your project frame rate somewhere in the middle range of the cliips. However, you can usually mix clips to some extent without impairing quality as long as the disparity between clips is not too great. For example, if you insert a 24fps clip into a 60fps project you might get some stuttering with the slower clip, particularly if it displays a fast motion scene, like a motor car race. If it displays a more static scene, like a landscape, you might not notice any issue. If you insert a 60fps clip into a 24fps project, you might get a little slow motion on the 60 fps clip that, again, you might not notice if the scene is static. You probably could mix 24fps clips with 30fps clips without any noticeable problem. You will just need to play it by ear.
In the timeline, you can use iMovie's speed controls to increase or decrease the speed of a clip, thus increasing or decreasing its recorded frame rate. That might smooth things out. If the sound gets distorted there is a "preserve pitch" option in the speed controls.
With resolution, it is probably best not to mix clips that are separated by more than two levels. So, 720 with 4k should be O.K. Your resolution export settings might affect the result. Again, you'll need to experiment.
-- Rich