According to this code, there are 2 solutions,
There are dozens of solutions and you throw most of them away at intermediate steps because they resulted in equivalent board positions.
But you didn't bother to throw away duplicates that are left-rigtht mirror images of each other despite the board being symmetrical that way. (Neither did I.)
So your "two" solutions means that, when using the minimum number of simple moves, the board layout (considering as identical any peices that are of the same shape and orientation) right before the last move is unique except for left-right mirroring.