Let $\mathbb{R}^{+}$ be the set of positive real numbers. Find all real numbers $a$ for which there exists a function $f :\mathbb{R}^{+} \to \mathbb{R}^{+}$ such that $3(f(x))^{2}=2f(f(x))+ax^{4}$, for all $x \in \mathbb{R}^{+}$.
1. **Claim**: The answer is all \( a \le 1 \).

2. **Verification for \( a \le 1 \)**:
   - Consider the function \( g(x) = 3x^2 - 2x^3 \).
   - The image of \( g(x) \) over the positive reals is \( (-\infty, 1] \).
   - For \( a \le 1 \), there exists \( d \) such that \( 3d^2 - 2d^3 = a \).
   - Define \( f(x) = d \cdot x^2 \). We need to verify that this function satisfies the given equation:
     \[
     3(f(x))^2 = 2f(f(x)) + ax^4
     \]
     Substituting \( f(x) = d \cdot x^2 \):
     \[
     3(d \cdot x^2)^2 = 2f(d \cdot x^2) + ax^4
     \]
     \[
     3d^2 x^4 = 2d^2 x^4 + ax^4
     \]
     \[
     3d^2 x^4 = (2d^2 + a)x^4
     \]
     \[
     3d^2 = 2d^2 + a
     \]
     \[
     d^2 = a
     \]
     Since \( d \) is chosen such that \( 3d^2 - 2d^3 = a \), the function \( f(x) = d \cdot x^2 \) works for \( a \le 1 \).

3. **Verification for \( a > 1 \)**:
   - Suppose \( a > 1 \). Define a sequence \( (y_n) \) of non-negative real numbers by \( y_0 = 0 \) and:
     \[
     y_{n+1}^2 = \frac{2y_n^3 + a}{3}
     \]
   - **Claim**: \( y_n > 1 \) for all sufficiently large \( n \).
   - **Proof**:
     - Assume \( y_n \le 1 \) for all \( n \).
     - Define \( b_n = y_n^3 - a \). Then:
       \[
       b_{n+1} \le b_n \cdot \frac{2}{3}
       \]
     - This implies \( b_n \) converges to zero, so \( y_n \) tends to \( \sqrt[3]{a} \), which is greater than 1, a contradiction.
     - Therefore, \( y_n > 1 \) for sufficiently large \( n \).

4. **Induction on the original equation**:
   - By induction, \( f(x) > y_n x^2 \), so \( (y_n) \) is bounded.
   - Consider the difference:
     \[
     y_{n+1}^2 - y_n^2 = \frac{2y_n^3 - 3y_n^2 + a}{3}
     \]
     Since \( y_n > 1 \) for large \( n \), the term \( 2y_n^3 - 3y_n^2 + a \) is positive, so \( y_{n+1}^2 > y_n^2 \).
   - This implies \( y_n \) converges to some limit \( L \).
   - At the limit, \( g(L) = 3L^2 - 2L^3 = a \), which contradicts \( a > 1 \).

Thus, the only possible values for \( a \) are \( a \le 1 \).

The final answer is \( \boxed{ a \le 1 } \).