All three of these indicate actions which occured in the past, but vary depending on duration and relevance to the present time.
The passato prossimo is used for past events which have just happened and are relevant to the speaker in the present. However, sometimes this can replace the passato remoto completely, especially in informal registers.
The imperfetto is used for past events which were repeated and are relevant to the speaker in the present.
The passato remoto is used for past events which occured in a closed time period, these can be single events, or repeated over time BUT the duration must be clearly defined and cannot continue into the present. Often, this tense is used in more formal or narrative registers.