Can I add new lines of service with new devices, then swap phone numbers between old and new lines, then cancel the old lines?
No, that would be the same as not having to add a new line of service.
There are ways around this, though. You could port your old line to a service such as Google Voice and then port it back in over the new number or you could simply use Google Voice on your new line of service to send/receive calls.
I believe there is a $20 charge to port your current number to Google Voice. Not sure what the charge is, if any, to port it out of Google Voice.