I am sorry too that your vacation was ruined and Manuel's advice is excellent.
However can I ask why you did not check with the Canadians?
You might not want to read this but I see issues like this solely as the personal responsibility of the traveller.
I doubt if NCL will compensate because I am sure there will be a clause somewhere which states the client must check their visa requirements.
However, another reason not to book direct with the cruiseline?