I encountered a similar problem while making a single-player mission in ARMA. I no longer have the mission file (sorry), but I'll tell you what I remember doing to get it working.
Like you, I was trying to get a helo to land under fire and pick me up. It was a night mission I made where I had to find some civilians hiding in the wilderness in South Sahrani who fled their town after it was overrun by opposition forces. Once the civilians were found (I came within close proximity to their campsite), I set up a trigger which made the civilians become part of my squad so I could give them orders. I had also set up a trigger at the campsite which told the UH-60 crew in North Sahrani to fly to the extraction point. The extraction point was some distance away from where the civilians were found, giving us time to hoof it to the extraction point while the helo was inbound. I had also set up some foot patrols in the wilderness for us to avoid/engage, as well as some UAZs on the coastal roads between North/South Sahrani.
It took me a while to find a spot where the helo would get close without making a long turn, which exposed it to more gunfire and often caused it to crash. Once I found a good spot, the helo would approach quickly and get very close to the ground, but it was still in a hover. The helo gunners would also engage the ground targets, but would not stop to engage them, nor fly past the extraction point; they would just engage the targets while they were visible while the pilot focused on getting to the extraction point.
From there, I set up another trigger at the extraction point which enabled a menu option to order the civilians I found to board the helicopter. Once the board command was issued to the civilians, the helicopter set down right where it had been hovering and stayed there until everyone in the group was on board. Once on the helo, I had attached a command to the helo to have it fly to the refugee camp and land so we could disembark.
I got the mission to run just fine. It might not be the most efficient way of doing things, but based on my limited knowledge of the code, I was happy with the results. I really wish I had the mission file still, so I could give you more specific examples, but apparently when I upgraded to Windows 7 from XP I lost the mission files.
Hopefully I've at least given you another place to start looking for your answers!
EDIT:
A few things I missed that might help:
I had also placed a trigger at the refugee camp which attached a menu item to the helo, which I could select to have the helo land at the camp so the civilians and I could disembark. I believe I placed that code in separate script files and referenced them in the applicable triggers, so that the commands weren't always/prematurely available. The helo would hover high above the ground until I used the menu item to tell the pilot to land. Also, I do remember some of the civilians disembarking while the helo was still too high, which would result in them injuring/killing themselves. I think I fixed this by timing how long it took the helo to land and setting up a delay between the land/disembark orders.