A US citizen who resides abroad can register to vote in federal elections in the last state or territory where they resided in the US. So in your example, the US citizen who was resident in Puerto Rico, and who moves to Canada without first residing in any other state or territory, would register to vote in Puerto Rico. Since he is registered to vote in Puerto Rico, he does not vote in an election for choosing presidential electors since Puerto Rico doesn't have any presidential electors. Only the 50 states and DC have presidential electors, and each of them chooses the electors based on elections by people registered to vote in that state (or DC), so he would have to be registered to vote in some particular state or in DC to participate in an election for choosing presidential electors, but he does not qualify to register to vote in any of the states or DC, because he was not resident there last.
Yes, US citizens who are neighbors in Vancouver, Canada, one of whom is a former New Yorker and the other of whom is a former Puerto Rican, would be registered to vote in two places (one in New York and the other in Puerto Rico). They would get two different ballots, and may even have different dates for elections (for elections that are not held on the November election day). They would have different offices to vote for, and, in the case of the ballot for the November election in a presidential election year, the New York ballot would contain an election for a slate of presidential electors, while the Puerto Rico ballot would not.