Iavra, your snippet won't quite work for a few reasons, mainly that by the time the original merge is called the party has been deleted. What you need to do is edit the party merge script directly, and put this somewhere before the line which calls delete_party:
party2.quests.list.each { |quest|
0.upto(quest.objectives.size) { |objid|
if party2.quests.revealed?(quest.id) && party2.quests[quest.id].objective_status?

revealed, objid)
party1.quests[quest.id].reveal_objective(objid)
end
}
}
This will reveal for party1 any objectives which were revealed for party2, with the exception of quests that party2 didn't have visibility of in the first place.