Starting from the FF part:
This is a bit tricky with the string crossings but places the shifts during open strings to give you a nanosecond more time to accurately place you left hand; and the thumb stays in the crook of the neck.
a minor - open A, C on the E-string with 2, E on the A-string with 1, open A.
B Major - pivot back to play the B on the E-string with 2, D# on the A-string with 1, pivot up to play the F# on the A-string with 4 and bar over with 4 to play the high B on the D-string.
e minor - low E on the A-string with 1, B on the D-string with 4, bar over with 4 to play the high E on the G-string.
d minor - F on the A-string with 2, A on the D-string with 1, bar over with 1 to play the D on the G-string then pivot up to play the high F with 4 on the G-string.
Play an open G to give you time to shift down to 1st position.
The C arpeggio bar play the lower C on the E-string with 1, the octave C on the D-string with 4, open the hand to play the high G harmonic (gasp!) with 3, the E with 2 on the G-string and the C with 4 on the D-string then open G, etc. This way the thumb of the left hand stays in the same spot and will spring back to the position it just left to play the E and C.
To work on the string crossings try this exercise. Play each eighth note three times as a triplet at a slowish tempo. When clean, play it again slightly faster until clean. Once it is fairly quick, play as written except instead of even eighths, play it dotted eighth-sixteenths, then sixteenth-dotted eighth; start slow and increase tempo as the shifts become cleaner. Then play it even as printed. Use a metronome!
Five minutes of this technique is worth 30 minutes of trying to crash through it. This is a magic formula to clean up any rapid passage.