I understand the difference between moral and legal. We would all wish that laws are moral, but anyone who has looked at history quickly understands that this is not the case.
The slaves had a moral right to be free, but at that time they didn't have a legal right.
The Confederates had both a moral and legal right to their independence. Now you might argue that their immorality in holding slaves justifies another immorality in conquering them and denying them their own rights, and this argument might hold more weight were it not for the fact that the conquering power had every intention of keeping those slaves in slavery when they launched their war against the South.
When you clearly understand that neither side was being motivated by what was morally proper towards the slaves, then you have to take that off of the table, and judge the matter on what is left.
What is left is the South adhering to the original founding principle of self determination, and the North determining to subjugate them to keep control of their economic activity.
The South had no obligation to keep allowing New York and Washington to siphon off so much of their economic activity, but because of the laws of the Union, they could not stop it so long as they remained constrained by the Union, and so they were left with the option of striking out on their own and handling their own economic affairs.
Trouble was, the powers that were making money off of them, didn't like the threat they posed, and so with the influence they possessed with the government, they launched a war to stop the South from taking away their business.
The Constitution is our founding document and supersedes wishes for breakaway independence. The idea that it was all about economics is your own idea. Northerners thought they were fighting for the country and its constitution. They had no objections to whatever economic activities Southerners wanted to engage in.