"I have been in Australia for three weeks, but I�m staying here until next year."
I gave as possible sentences:
I have been in Australia for three weeks, and I�m staying here until next year."
I have been in Australia for three weeks, and I �ll be here until next year."
There are many different ways we can say this.
The use of �but � doesn �t sound quite right because there are just two amounts of time added together. 3 weeks plus the period of time from now until next year.(3-4 months perhaps)
We can use �but � if we say:
I �ve only been here for 3 weeks, but I �ll be here until next year. (Here we contrast the short time of 3 weeks with the longer time of several months)
Your suggestion: "I have been in Australia for three weeks, but I�ll stay here until next year."
Your sentence using the simple future tense is gramatically correct, but it would be used differently. eg:
I �ve been here for 2 hours, but I �ll stay until John arrives. (stay = wait)
I �ll travel to Sydney next month and I �ll stay there until the end of August.
In the sentence about Australia, the person is staying/holidaying in Australia the -ing form is needed. I �m staying /I �ll be staying or I will be here (same meaning)
I hope this helps.