I didn't see anyone anywhere post about this, so I thought I would.
Basically, here is what happened (in as most detail as possible): I chose to do the heist with the offshore option. We got everything, flew out there, grabbed the thing, got attached back up, got past the Merryweather men, and then it prompts to switch back to Michael to fly back to the air strip. I did NOT switch back. Just after we pass the mountain top, the game glitched out. It seems to continuously swap between Michael and Franklin. The heli flew back to the airfield by itself, continuously swapping between the two automatically. It lasts less than a second between swapping. My controller seems mostly unresponsive. The PS Home button still works, and if I go crazy with the shoot button, Franklin manages to get off one shot before swapping back to Michael. The pause button doesn't work. The heli is hovering where I need to drop the sub, but the button to drop the sub doesn't seem to respond, nor does the button to lower the heli.
I tried changing out controllers, but it made no difference. I then attempted to change the controller back, and it continued to do what it was already doing. I then got an alert message saying it cannot detect a wireless controller. Not only is the controller there, but it is charging and the PS Home button still works, so I don't know what it's complaining about. At a quick glance, I noticed the only controller I had connected had somehow changed to controller #2 by itself. I changed it back to controller #1 and the alert message went away, but the game is still glitched with the heli covering and the characters swapping back and forth.
My only option was to quit the game from the PS3 Home. I'm about to try to replay the mission. I'll edit/comment regarding how it goes the second time.
EDIT: Played it a second time, this time swapped back to Michael when it told me to. Everything went as it should. I guess the bug only exists if you don't go back to Michael. I haven't seen any of the code, but my guess would be that it is attempting to automatically swap back to Michael, but it can't for some reason, so it is going back to Franklin. It is then attempting to automatically swap back to Michael, but again is blocked, ect. Looked to me like an infinite loop due to some condition not being met.