MIDI aligns to the timeline, so *if* you have only one set of audio (or ALL the audio aligns to each other, just the timeline is not right), using Set Measure/Beat At Now (Shift-M) for each audio downbeat that drifts (be sure to anchor the initial one) will insert tempo adjustments to align the timeline to the audio. MIDI loops will then play properly to that timeline.
For a situation with multiple audio files not aligning to each other, you would need either AudioSnap, show transients and stretch/compress between them (by scooting the transient markers), or use Melodyne. The least painful is scooting transient markers (essentially AudioSnap), but you will want to bounce that work when done to render nicely. Be sure to save a copy of you project
before you ever start playing with AudioSnap so you can back out of the whole deal should things go awry.