At the airport, Delta can fix the seat assignment problem, and I would imagine the upgrade problem as well.
I try to avoid direct flights for this reason, but one time I didn't have a choice, and I was upgraded into different seats of a CVG-ATL-OAK direct flight. What's worse is the first flight was late, another plane was substituted for the ATL-OAK flight, I was rebooked on the next flight to OAK, but I made it to the original flight anyway where I found my upgraded seat was given away.