If you execute
./somescript.sh as an external program, it can't do anything inside the running shell process, such as accessing non-exported variables, setting variables, changing the current directory, etc. There is no way around this.
(Well, ok, you may be able to run a debugger from the subprocess and tweak the memory of the parent process. But if you try it, the most likely result is crashing the parent shell.)
You need to run
. ./somescript.sh. You can hide that behind an alias or function if you like, but again the alias or function definition has to be done in the parent shell.