Preheat oven to 300°.
Trim and discard excess fat from brisket. In a 12- by 18-in. roasting pan, place onion slices and 3/4 of lemon slices; wrap remaining lemon airtight and chill. Lay brisket on top of onion and lemon in pan.
In a bowl, stir together port, sugar, and marjoram until sugar dissolves, then pour evenly over brisket. Sprinkle brisket with pepper and tightly cover pan with foil.
Bake until brisket is very tender when pierced, about 4 hours. Meanwhile, about 1 1/2 hours before brisket is scheduled to be done, pierce each sweet potato with a fork and set on oven rack alongside or above brisket.
When brisket is tender, uncover pan and return it to the oven to brown the meat slightly, about 15 minutes. Remove brisket from pan and place on a platter; keep warm. When potatoes are soft when pressed, remove them from oven, add to brisket platter, and keep warm.
Skim off and discard fat from pan juices. Place roasting pan on the stove over high heat; boil juices, uncovered, stirring often. As mixture thickens, reduce heat to medium and stir constantly until marmalade is thick and shiny and reduced to 1 1/2 cups, 20 to 30 minutes.
Spoon marmalade over brisket, then garnish with reserved lemon slices. Cut brisket across the grain to serve.