You explained the economic issue correctly. I will just add that Punjab also has a strong Mandi lobby for farmers (the middlemen who buy the crop in bulk and sell to government at MSP) who will be rendered irrelevant if private corporate players are allowed (as per the farm laws) to buy the produce from the farmers directly and could bring the price to reflect market reality.
My solution to this issue is to implement farm laws wholly in the rest of the India (93% of agricultural output is Rest of India, only 7% is from Punjab) and make special allowance for Punjab, with MSP as a price floor and allow private players to be able to do business (remember, privatisation does bring in market efficiencies and creates overall increase in productivity) with incentives like processing subsidies. Also, the State government should bear the additional expense (if any) for the farmers who will continue to sell their yield at MSP. This can be phased out gradually as the next generation of farmers increase their income with higher market price and stop relying on MSP.
Coming to why media is portraying it as Khalistani supported anti-India movement: a simplistic black and white narrative is convenient, if it is not true. Yes, there were some anti-India slogans raised in the protest group; the Punjabi farmers wanted support for their cause from any corner and some extremist elements (Khalistani group) took advantage of the timing and stepped in, causing ruckus at the red fort. At the same time, the government picked on that small fraction, and built a counter-narrative that the entire farmers protest is anti-Indian. Everyone is playing this game of narratives, to see who blinks first, instead of coming together for an administrative resolution.
On a side note, the overarching point is this: people are tribal and align themselves with a party/ideology and will support anything and everything that their party advocates. Same goes the opposite way: those who hate a party/ideology will fight it with everything even if that party is doing something good.