More than 8 createChar()'s?

I am trying to program a CrystalLiquid display (the one that comes in the Arduino Starterkit) so I can hook it up to my pingpong table and use it to keep score. To do this I need to make the numbers bigger, so I am creating custom characters. For each number I need four custom characters, one for the top left, top right, bottom left, and bottom right. I can program up to two numbers only though, because I only store them under 0-7, but after that it doesn't work. Is there any way I can create more custom characters? I also tried to create the character each time I wanted to draw the number, so whenever I wanted to draw 0 I re-made the characters, and then if I wanted to draw a different number I would again re-make the characters but it wouldn't work.

By the way, I am using an Arduino Uno

Post your code, let's see what you have so far. Use code tags, or Attach your program if >9000 bytes.

When I run this the result is 221

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte zeroTopLeft[8] = {
  B11111,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
};
byte zeroTopRight[8] = {
  B11111,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
};
byte zeroBottomLeft[8] = {
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B11111,
};
byte zeroBottomRight[8] = {
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B11111,
};

byte oneTopLeft[8] = {
  B00001,
  B00011,
  B00111,
  B01111,
  B00001,
  B00001,
  B00001,
  B00001,
};
byte oneTopRight[8] = {
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
};
byte oneBottomLeft[8] = {
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B00001,
  B01111,
  B01111,
};
byte oneBottomRight[8] = {
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B11110,
  B11110,
};

byte twoTopLeft[8] = {
  B00011,
  B00110,
  B01100,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
};
byte twoTopRight[8] = {
  B11000,
  B01100,
  B00110,
  B00110,
  B00011,
  B00011,
  B00110,
  B01100,
};
byte twoBottomLeft[8] = {
  B00000,
  B00001,
  B00011,
  B00110,
  B01100,
  B11000,
  B11111,
  B11111,
};
byte twoBottomRight[8] = {
  B11000,
  B10000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
};


int zeroTopLeftW = 0;
int zeroTopRightW = 1;
int zeroBottomLeftW = 2;
int zeroBottomRightW = 3;

int oneTopLeftW = 4;
int oneTopRightW = 5;
int oneBottomLeftW = 6;
int oneBottomRightW = 7;

int twoTopLeftW = 8;
int twoTopRightW = 9;
int twoBottomLeftW = 10;
int twoBottomRightW = 11;

int xx;
int yy;
int value;
void setup() {
  lcd.createChar(zeroTopLeftW, zeroTopLeft);
  lcd.createChar(zeroTopRightW, zeroTopRight);
  lcd.createChar(zeroBottomLeftW, zeroBottomLeft);
  lcd.createChar(zeroBottomRightW, zeroBottomRight);
  
  lcd.createChar(oneTopLeftW, oneTopLeft);
  lcd.createChar(oneTopRightW, oneTopRight);
  lcd.createChar(oneBottomLeftW, oneBottomLeft);
  lcd.createChar(oneBottomRightW, oneBottomRight);
  
  lcd.createChar(twoTopLeftW, twoTopLeft);
  lcd.createChar(twoTopRightW, twoTopRight);
  lcd.createChar(twoBottomLeftW, twoBottomLeft);
  lcd.createChar(twoBottomRightW, twoBottomRight);
  
  xx = 0;
  yy = 0;
  
  lcd.begin(16, 2);
  lcd.setCursor(8,0);
  lcd.write("0");
  delay(1000);
  cursorPositions();
  writeZero();
  scootOver();
  writeZero();
  scootOver();
  writeOne();
  scootOver();
}

void loop() {
}
void writeZero(){
  cursorPositions();
  lcd.write(byte(zeroTopLeftW));
  lcd.write(byte(zeroTopRightW));
  xx = xx + 2;
  xx = xx - 2;
  yy = 1;
  cursorPositions();
  lcd.write(byte(zeroBottomLeftW));
  lcd.write(byte(zeroBottomRightW));
}
void writeOne(){
  cursorPositions();
  lcd.write(byte(oneTopLeftW));
  lcd.write(byte(oneTopRightW));
  xx = xx + 2;
  xx = xx - 2;
  yy = 1;
  cursorPositions();
  lcd.write(byte(oneBottomLeftW));
  lcd.write(byte(oneBottomRightW));
}
void writeTwo(){
  cursorPositions();
  lcd.write(byte(twoTopLeftW));
  lcd.write(byte(twoTopRightW));
  xx = xx + 2;
  xx = xx - 2;
  yy = 1;
  cursorPositions();
  lcd.write(byte(twoBottomLeftW));
  lcd.write(byte(twoBottomRightW));
}
void cursorPositions(){
lcd.setCursor(xx,yy);
}
void scootOver(){
xx = xx + 2;
yy = 0;
}

usually the "8 custom characters" is a limit of the controller chip in the LCD itself, rather than a limitation of the Arduino software. There is room for 8 custom characters in the standard HD44780 controller chip. Many displays these days have a "compatible" chip that MIGHT have more customer character memory, but you'd need to figure out the exact chip and find its datasheet to be sure (or, I guess you could just experiment...)

You can use 8 custom characters plus standard characters to make a large font:

http://www.instructables.com/id/Custom-Large-Font-For-16x2-LCDs/