Confederate corps were generally commanded by Lieutenant-Generals
Source: Wikipedia: "General Officers in the Confederate States Army"
Good Riddance 2020 Bonus:
Private Arsenal H. Griffin
Source: Pickett's Charge at Gettysburg: A Guide to the most famous Attack in American History, page 213
Wishing everyone at Civilwartalk and all members "Merry Christmas and a Happy, Healthy Year 2021!
Edit - I don't have a copy of the book cited as the source for the Good Riddance bonus question, so I am unable to verify that Arsenal H. Griffin was severely wounded at Fair Oaks and then committed suicide after another severe wounding on July 3, 1863.
Second edit - Sarladaise has provided a second source, which states very definitely that the name of the soldier who called out "Good-bye, boys" was Arsenal H. Griffin. I have no explanation for why Griffin was apparently known by two different names, but the answer is supported by a source, so I will give credit for it.
Main question: The citizen who cut down the flag was William Mumford. That part was easy.
I can find lots and lots of sources indicating that David Farragut ordered a detachment of Marines to raise the flag over the mint, but none of them indicates the name of the individual Marine who was assigned the task of raising it.
Christmas bonus: At least I can take a guess at this one. My guess is False. It is true that the Confederate Army was smaller than the Union Army, but I don't think it was generally intended that major generals should command corps.
Good Riddance Bonus: My searches come up with nobody who fits the description. Since I don't know who the person is, I don't know what his last words were.
LT. STILLWELL led the detachment of Marines to raise the flag over the mint. It was cut down by WILLIAM B. MUMFORD.
Christmas Bonus: TRUE
Good Riddance Bonus: Prvt. HIRAM A.GRIFFIN said "GOODBYE BOYS".
Answer: (A) Lt. John Campbell Harris (B) William Bruce Mumford
Source: Field, Ron. American Civil War Marines 1861-1865. Osprey Publishing, 2004.
christmas bonus Answer:
In the Union Army major generals commanded divisions, corps and even whole armies. In the Confederate army, corps were commanded by lieutenant generals.
Source: "Until Ulysses S. Grant was appointed lieutenant general and General-in-Chief in 1864, the Union Army had only two grades of general: major general and brigadier general.In the Union Army, major generals commanded armies as well as corps and divisions, the armies’ largest units."
[...] The Confederate Army had four grades (or levels or "ranks") of general officers, much like the modern U.S. Army: general, lieutenant general, major general and brigadier general. In theory, full generals commanded armies, lieutenant generals commanded corps, major generals commanded divisions and brigadier generals commanded brigades.