First, observe that any collection of disjoint non-empty open sets in $\mathbb{R}^n$ is at most countable; each contains a rational point and no two can contain the same point.
Now, suppose $x \in E \setminus P$. Then by definition, $x$ has a neighbourhood containing finitely many points of $E$. Hence we can define $\epsilon_{x} = \underset{y \in E \setminus \{x\}}{\inf} \{d(x,y)\}$ and know that $\epsilon_{x} > 0$, since either $x$ has a neighbourhood containing finitely many point of $E$ other than $x$, and $\epsilon_{x}$ is the distance to the nearest point, or $x$ has no such neighbourhood (e.g. $E$ is the unit circle together with $(0,0)$), but does have a neighbourhood containing just $x$, so again $\epsilon_{x}>0$.
Now, consider the collection of non-empty open balls $B_x=N(x,\epsilon_{x}/2)$. These are disjoint, since if $B_x \cap B_y \neq \emptyset$ then $d(x,y) < 1/2 (\epsilon_{x}+\epsilon_{y}) \leq 1/2(d(x,y) + d(y,x))$. By the opening comment, there are at most countably many of them, hence countably many $x \in E \setminus P$.
This is a standard application of Baire's Theorem (BCT3):
Assume that indeed
$$
(0,1)\cap\mathbb Q=\bigcap_{n\in\mathbb N}U_n,
$$
where $U_n$ open dense in $[0,1]$, and $(0,1)\cap\mathbb Q=\{q_n\}_{n\in\mathbb N}$.
Now define
$$
V_n=U_n\smallsetminus\{q_n\}.
$$
Then clearly, $V_n$ open and dense in $[0,1]$, and
$$
\bigcap_{n\in\mathbb N}V_n=\varnothing,
$$
which contradicts Baire's Theorem, as $[0,1]$ is a complete metric spaces, and an intersection of countably many open and dense subsets of it is empty.
EDIT. If you do not want to use Baire's Theorem, let $U_n$'s and $V_n$'s defined as above. As $V_1$ is open, then there is a non-empty interval $(a_1,b_1)$, such that
$$
(a_1,b_1)\subset V_1\subset (0,1).
$$
Choose now a closed interval $[c_1,d_1]\subset (a_1,b_1)$, with $d_1>c_1$.
Next, as $V_2$ is open and dense, then there is a non-empty interval $(a_2,b_2)$, such that
$$
(a_2,b_2)\subset V_2\cap (c_1,d_1),
$$
and choose a closed interval $[c_2,d_2]\subset (a_2,b_2)$, with $d_2>c_2$.
Recursively we can thus obtain two sequences of intervals $(a_n,b_n)$, $[c_n,d_n]$, $n\in\mathbb N$, such that
$$
[c_{n+1},b_{n+1}]\subset (a_{n+1},b_{n+1})\subset V_{n+1}\cap (c_n,d_n).
$$
But $\bigcap_{n\in\mathbb N} V_n=\varnothing$ implies that $\bigcap_{n\in\mathbb N} [c_n,d_n]=\varnothing$, which is a contradiction.
Best Answer
(a) We have $A = \bigcup_{n\in\mathbb Z}([n,n+1]\cap A)$. If each of these sets was finite, then $A$ would be countable. So there is some $n$ such that $[n,n+1]\cap A$ is infinite. Now, choose a sequence $(a_k)$ with points in this set. This sequence is bounded and thus has a limit point (which is then also a limit point of $A$).
(b) By a similar reasoning as above we can show that there is $n$ such that $A_n = [n,n+1]\cap A$ is uncountable. Assume that $A_n$ has only one limit point $a$. Let $k\in\mathbb N$ and consider $A_n\setminus (a-\frac 1k,a+\frac 1k)$. There can only be finitely many points in this set since otherwise the set would have a limit point which is not $a$. So, $A_n\subset\{a\}\cup\bigcup_k(A_n\setminus (a-\frac 1k,a+\frac 1k))$ is countable, a contradiction. I am sure that you can generalize this reasoning to the case where $A_n$ has only finitely many limit points.