He set aside money for the purpose of Hijrah (migration to a Muslim country) then swore to give it in charity if he fell into sin
You did well when you formed the intention to leave that country and migrate to a Muslim country.
Because you were able to collect the money needed for travel, but you swore that oath, intending to prevent your self from going back to that sin, then you were overwhelmed by your nafs and you went back to it, now you have to continue with your plan to migrate and you should not let the oath that you swore hold you back. What is prescribed in the case of one who swears an oath then thinks that something else is better than it, is to do what is better and to offer expiation for his oath.
There is no doubt that the purpose of migration and the good consequences that will result from it, such as keeping away from temptation and its people, takes precedence over the harm caused by breaking an oath.
Shaykh al-Islam Ibn Taymiyah (may Allah have mercy on him) said:
The Lawgiver takes into consideration the pros and cons, and when there is a case in which there are pros and cons, the definite pros take precedence over the uncertain cons. End quote.
Majmoo‘ al-Fataawa, 24/269
Al-Bukhaari (6718) and Muslim (1649) narrated from Abu Moosa al-Ash‘ari (may Allah be pleased with him) that the Prophet (blessings and peace of Allah be upon him) said: “By Allaah, if Allaah wills, I do not swear an oath (to do something) then see something better than that, but I expiate my oath and do that which is better.”
And Muslim (1650) narrated that Abu Hurayrah (may Allah be pleased with him) said: The Messenger of Allah (blessings and peace of Allah be upon him) said: “Whoever swears an oath (to do something) then sees that something else is better than it, let him do that and offer expiation for his oath.”
Al-Nawawi (may Allah have mercy on him) said:
In these hadeeths there is an indication that if a person swears to do something or not to do something, but breaking his oath is better than going ahead with it, it is mustahabb for him to break his oath and he has to offer expiation for that. This is something on which there is scholarly consensus. End quote.
So hasten to leave that land and move to a Muslim country. This will be more beneficial for you and will be more effective in helping you to adhere to the straight path than forcing yourself by means of oaths that you are not able to fulfil.
You have to be sincere in repentance and turning to Allah, and you have to think positively of Him and renew the covenant by coming back to Him. Do not lose hope in Him, for no one who pins his hope on Allah will ever be disappointed. And do not despair of the help and mercy of Allah. Resolve to strive hard and turn to your Lord with a heart full of fear and hope.
Remember the words of Allah, may He be exalted (interpretation of the meaning):
“Say: O 'Ibâdî (My slaves) who have transgressed against themselves (by committing evil deeds and sins)! Despair not of the Mercy of Allâh, verily Allâh forgives all sins. Truly, He is Oft-Forgiving, Most Merciful
And turn in repentance and in obedience with true Faith (Islâmic Monotheism) to your Lord and submit to Him, (in Islâm), before the torment comes upon you, (and) then you will not be helped”
You have to offer kaafarat yameen (expiation for breaking an oath) for the oath that you broke, and continue with the plan of migration; spend the money that you have on striving to leave that land and move to a Muslim land. May Allah help you and guide you and accept your repentance. And Allah knows best.