Your intuition about the restriction of a compact operator to a subspace looks correct to me. A linear operator $T : X \to Y$ is compact if, for every bounded sequence $\{x_n\}$ in $X$, the sequence $\{Tx_n\}$ has a subsequence which is Cauchy in $Y$. So, if you have a subspace $Z$ of $X$, any bounded subsequence in $Z$ is also a bounded subsequence in $X$, so its image under $T$ will have a Cauchy subsequence in $Y$ too.
For your second question, I don't think the range of a compact operator is always closed. Consider the operator $T : \ell^2 \to \ell^2$,
$ (Tx)_n = e^{-|n|}x_n$.
(Pretty sure that's a compact operator.) For all $y$ in the range of $T$, $y_n$ decays exponentially fast as $n \to \pm\infty$. Now consider the sequence $z_n = (1+n^2)^{-1}$, which is in $\ell^2$; since it doesn't decay exponentially fast, it can't be in the range of $T$. On the other hand, there is a sequence of points in the range of $T$ which converge to $z$. If you're stumped, I can write down what the sequence is.
Someone who's less rusty on functional analysis can probably give you a deeper insight here. You should note that an operator have a closed range and being a closed operator are two different things. For example, it's shown here that an operator is closed if its domain is complete with respect to the graph norm
$\|x\|_T = \sqrt{\|x\|^2+\|Tx\|^2}$.
You can verify that, by this criterion, the counterexample I gave you before is a closed operator, even though its range isn't closed.
Best Answer
If the question is if there always exists such a restriction then the answer is no. It is a known fact that the identity operator on infinite dimensional spaces is not compact. So if you restrict the identity operator $Id:X\to X$ to any subspace with infinite dimension it will not be compact.
Edit: it is possible for a restriction of a non compact operator to be compact. Take $X=l^2$, the space of all complex sequences $\{x_n\}_{n=1}^\infty$ such that $\sum_{n=1}^\infty |x_n|^2<\infty$. This is a Banach space. Define $T:X\to X$ by $T(x_1,x_2,x_3,...)=(0,x_1,0,x_3,0,x_5,...)$. This operator is not compact, it is easy to check. (think about the vectors of the standard basis to show it is not compact). But if you restrict it to the subspace of vectors in $l^2$ with zeros in all of the coordinates with even index (which is obviously an infinite dimensional subspace) then $T$ will become the zero operator, hence compact.