IFS=/ read -d "" -r -a path <<<"$path"
but because of the action of <<<, the final item will have a newline appended -- but that can be removed thus:
path[-1]="${path[-1]%$'\n'}"
If the path began with a /, then path[0] will be empty, so as the leading / is important, we'll recover that
test -z "${path[0]}" && path[0]="/"
This spell will remove empty items from the list (and also renumber the indexes):
IFS= eval 'path=(${path[@]})'
(We could avoid the eval by saving IFS, but eval is safe enough here not to bother).
Now it is simple enough to iterate over "${path[@]}" and perform a chdir on each stage.