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 = 162, 361 = 192}. 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 152 = 225 is too small and 352 = 1225 is too big, so 11ac = 625 = 252.
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 = 262 is a square, so 3dn = 616.
We have 20ac = SNPS = _0__, starting with one of {1, 4, 9}. The matching squares are {1024 = 322, 1089 = 332, 4096 = 642, 9025 = 952} 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 = 332, 1521 = 392, 1849 = 432}.
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 = 112, 144 = 122, 441 = 212, 484 = 222}. 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 2452 = 60025 to 2642 = 69696), the only ones that match are {68121 = 2612, 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 = 392, 1681 = 412}, but neither 15 nor 16 is prime; starting with 4, there’s {4761 = 692}; starting with 9, there’s {9801 = 992}, 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 = 742; starting with 74, there are no squares (862 = 7396, 872 = 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 = 1022, 11664 = 1082, 12544 = 1122, 13924 = 1182, 14884 = 1222, 16384 = 1282, 17424 = 1322, 19044 = 1382}, none of which have a 2 at the centre. The five-digit squares starting with 4 and ending with 4 are {40804 = 2022, 43264 = 2082, 44944 = 2122, 47524 = 2182, 49284 = 2222}; 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 = 142, 256 = 162, 576 = 242, 676 = 262}, 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 = 342, 1369 = 372, 1764 = 422, 1936 = 442}, 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 = 392 and 1681 = 412, but the third digit has to be 2 or 4 (from 27ac), so 19dn = 1521 and 27ac = 121. The grid is now complete.