This is one possible logical path to a solution. The single digits can be partitioned into the classes S = {1, 4, 9}, P = {2, 3, 5, 7} and N = {6, 8}, to help with identifying the first digits of answers.

6dn = SS, a two-digit square whose first digit is a square, so it must be one of {16, 49}.

For 9ac = PSS, the first two digits must be one of the squares {25, 36},
so the whole square can only be one of {256 = 16^{2}, 361 = 19^{2}}.
The only one that fits with 6dn is **9ac = 256, 6dn = 16**.
Also, 14dn = PSS, so it must be the other possibility, **14dn = 361**.

For 9dn = PSNS, we already have the first digit as 2, so it starts with the square 25;
the only matching four-digit square is **9dn = 2500**.
Then we have 11ac = NNS = either 6_5 or 8_5;
the square 15^{2} = 225 is too small and 35^{2} = 1225 is too big,
so **11ac = 625** = 25^{2}.

For 3dn = NPN = __6, the first digit is one of {6, 8},
but for 1ac to be square it must be 6.
To be prime, the first two digits are one of {61, 67}.
But 676 = 26^{2} is a square, so **3dn = 616**.

We have 20ac = SNPS = _0__, starting with one of {1, 4, 9}.
The matching squares are
{1024 = 32^{2}, 1089 = 33^{2}, 4096 = 64^{2}, 9025 = 95^{2}}
but to make a three-digit prime the third digit must be odd, so **20ac = 4096**.

For 14ac, = PPPS = 3___, the first two digits must be one of the primes {31, 37},
but since 2dn is a square, only 31 is possible.
From 16dn = NNPNS, the last digit of 14ac is one of {6, 8},
so to make a square it must be 6; the only square matching 31_6 is **14ac = 3136**.

19dn = SNNS starts with a square digit.
For 18ac = NP, 64 and 69 aren’t prime, so **18ac = 61**.
The first two digits of 30ac are a prime, so 19dn ends in one of {1, 3, 7, 9},
but it’s a square so it must end in one of {1, 9}
and its square root ends in one of {1, 3, 7, 9}.
For the first two digits to be not-prime and not-square,
they must be one of {10, 12, 14, 15, 18};
the possible squares are
{1089 = 33^{2}, 1521 = 39^{2}, 1849 = 43^{2}}.

For 27ac = SNS, we already know its first digit is one of {1, 4, 9};
the second digit is now one of {2, 4, 8}, so the matching squares are
{121 = 11^{2}, 144 = 12^{2}, 441 = 21^{2}, 484 = 22^{2}}.
Since 15dn is prime and 27ac is square, their shared last digit is one of {1, 9},
so 27ac is one of {121, 441}.

For 15dn = PSPP = 3__1, the first two digits must be the square 36.
The third digit is a prime (from 23ac = PPP);
362 is obviously a multiple of 2, 363 is a multiple of 3, and 365 is a multiple of 5,
so the first three digits must be 367 and **15dn = 3671**.

For 23ac = PPP = 7__, the first two digits must be one of the primes {71, 73, 79}.
The last digit is a square (from 24dn), so it’s one of {1, 9}.
Of the six possibilities,
711 has an obvious factor of 3,
731 = 17×43,
791 has a factor of 7 (700 + 91 = 7×100 + 7×13)
and 799 = 17×47,
so 23ac is one of {719, 739}.
For 16dn = NNPNS = 6____, the third digit is one of {1, 3} (from 23ac).
Of the five-digit squares starting with 6
(in the range 245^{2} = 60025 to 264^{2} = 69696),
the only ones that match are
{68121 = 261^{2}, 69169 = 263};
681 is an obvious multiple of 3 (ie, not prime),
so **16dn = 69169** and **23ac = 719**.

For 2dn = SPNS = ___1, its square root must end in 1 or 9.
The first digit is one of {1, 4, 9};
starting with 1, the eligible squares are
{1521 = 39^{2}, 1681 = 41^{2}}, but neither 15 nor 16 is prime;
starting with 4, there’s {4761 = 69^{2}};
starting with 9, there’s {9801 = 99^{2}}, but 98 isn’t prime.
So, **2dn = 4761**.

For 1ac = PNPS = _4_6, the square root must end in 4 or 6.
The first digit is one of {2, 3, 5, 7}
and to make a three-digit prime the third digit is one of {1, 3, 7, 9}.
The only four-digit square starting with 24 is 2401, which has the wrong last digit;
starting with 34, there’s only 3481;
starting with 54, there’s 5476 = 74^{2};
starting with 74, there are no squares (86^{2} = 7396, 87^{2} = 7569).
So, **1ac = 5476**.

For 1dn = PP = 5_, it can’t be 59 because 7ac starts with a prime digit,
so **1dn = 53**.
For 8dn = PS, it’s one of {25, 36} (as for 9ac earlier),
but it must start with an odd digit to make 7ac prime,
so **8dn = 36**, which makes **7ac = 373**.

For 4dn = SPNNS = __2_4, the square root ends in 2 or 8.
Since 4ac starts with SS, its first two digits are one of {16, 49},
so 4dn starts with one of {1, 4}.
The only five-digit squares starting with 1 and ending with 4 are
{10404 = 102^{2}, 11664 = 108^{2}, 12544 = 112^{2}, 13924 = 118^{2},
14884 = 122^{2}, 16384 = 128^{2}, 17424 = 132^{2}, 19044 = 138^{2}},
none of which have a 2 at the centre.
The five-digit squares starting with 4 and ending with 4 are
{40804 = 202^{2}, 43264 = 208^{2}, 44944 = 212^{2},
47524 = 218^{2}, 49284 = 222^{2}};
of the two that have a 2 at the centre, 49284 starts with a two-digit square (not a prime),
so **4dn = 43264** and 4ac starts with 49.

For 13dn = PNS = __6, the square root ends in 4 or 6.
Of the possible squares,
{196 = 14^{2}, 256 = 16^{2}, 576 = 24^{2}, 676 = 26^{2}},
196 and 676 don’t start with a prime digit,
and the first two digits of 256 make a square, so **13dn = 576**.

For 17ac = PN = _7, the first digit is prime but it also ends the prime 5dn,
so it’s one of {3, 7}.
But 37 is prime, so **17ac = 77**.

For 12ac = SN = _5, the first digit is a square but it also ends the three-digit prime in 5dn, so it’s one of {1, 9}.

For 5dn = NNPP = _5_7, the first digit is one of {6, 8} and the third digit is one of {1, 9}
(it’s a square digit for 12ac and it ends the three-digit prime in 5dn).
Of the four possibilities for the three-digit prime,
651 is an obvious multiple of 3 and 851 = 23×37,
so 5dn starts with one of {659, 859} and **12ac = 95**.
But 6597 is an obvious multiple of 3, so **5dn = 8597**.

For 24dn = SNS = 9__, it can’t be the square 900, which would make 31ac start with 0,
so **24dn = 961**.
For 31ac = SPPS = 1___, the second digit is one of {1, 3, 7, 9} (to make a prime),
which restricts it to the squares
{1156 = 34^{2}, 1369 = 37^{2}, 1764 = 42^{2}, 1936 = 44^{2}},
but 115, 136 and 176 are obviously not primes, so **31ac = 1936**.

For 21dn = SNSP = 9__3, the three-digit square can’t be 900 (or 26ac would start with 0),
so **21dn = 9613**.
Then 26ac = NS = 6_, so it has to be **26ac = 64**.

For 29dn = SN = _6, the first digit is square,
but it’s also the end of the prime 28ac, so it’s one of {1, 9}.
But 16 is a square, so **29dn = 96**.
Then **10ac = 46**, because 16 is used as 6dn and 96 is used at 29dn.

For 28ac = SNP = _19,
the first digit can’t be 1 or 4 because they make the two-digit primes 11 and 41,
so **28ac = 919**.
Then 25dn = NP = _9, which starts with 6 or 8, can only be the prime **25dn = 89**.

For 27dn = SN, starting with 1 or 4 (because 27ac is one of {121, 441}), the second digit is one of {1, 4, 9} (because 30ac starts with a square digit). Of the six combinations, 11, 19 and 41 are primes and 49 is a square; 27dn is neither, so it’s one of {14, 44}.

Then 30ac = SPPS = 4__9, so its two-digit prime is 41
(not 43 or 47, because 19dn is a square).
To complete its three-digit prime,
we can eliminate 411 and 417 as obvious multiples of 3;
we find that 413 = 7×59, so the remaining possibility is **30ac = 4199**.

For 19dn = SNNS = 1__1, the square root ends in 1 or 9.
The only matching squares are 1521 = 39^{2} and 1681 = 41^{2},
but the third digit has to be 2 or 4 (from 27ac),
so **19dn = 1521** and **27ac = 121**.
The grid is now complete.