Your logic is wrong when the stack already has a head. I think the new head must point to old head (via .next).
I'm bit confused, are you implementing a LIFO or FIFO stack?
For a LIFO
else {
Node node = new Node(custPair, null);
node.next = head;
head = node;
size++;
}
For a LIFO Stack, you really don't need a tail.