The government is struggling to cut the billions of pounds of foreign aid partly used to house asylum seekers in hotels, according to new figures.