In many cases, they are interchangeable. 完成 has a sense of achievement and completion. 結束 means the process of something is finished/complete/over.
了 indicates past tense.
完 is a complement like 好, 到 -- -- complements go after verbs.
EX: 吃完了(finished eating it), 做好了(it's done, and done well), 看到了(saw it, achieve the seeing of something)