This better save you a TON of money, because this plan will cost you in time and stress. To answer your last question first: when you buy two separate tickets on two different airlines, neither airline will help you out. If the Southwest flight is significantly delayed, rescheduled or cancelled, you may have to buy new tickets on Air Canada or pay a lot to reschedule, and vice versa going home. Also, if you don’t actually fly on the first leg of a trip on an airline (for instance, the Air Canada flight to Lisbon) the airline might cancel your whole trip (I.e. the flight back from Lisbon). That would cost you even more.
I am assuming that you would do this through LaGuardia, since it appears that is the only NYC airport that both airlines serve. I looked at flights on Air Canada to/from Lisbon/Barcelona and they all make at least one stop after LGA for a layover - even more time and more opportunity for a delay or change or who knows what kind of problem. If you are planning a 5-7 layover at LGA (not a great place to spend a lot of time, by the way), you will have a very long and exhausting trip. I tried some random dates for your destinations on Google Flights and found some flights on Lufthansa that go non-stop Denver to Frankfurt (gets you over the pond and closer to your final destination) then non-stop to Lisbon at a pretty reasonable price and taking much less time. This would be my preference.
If you still feel that this plan is best for you, you might want to consider flying to NYC one day early, spend the night in an airport hotel, and then take the second flight the next day. This might wipe out some of your savings, but would be less risky and stressful, and less uncomfortable and exhausting.