Personalisation will only work on a landing page when you're sending to saved contacts or contact groups.
If you're trying to personalise a landing page for a large list of recipients using multiple fields - for example, first name, location, customer type etc. - you'll need to save the recipient list to your contacts first and include this personalisation data in the "Custom Fields" for the customer profiles. Then you can add these fields to the landing page content. This is the same method used for sending unique barcodes to a list of recipients.
When sending your landing page, if you upload a CSV or Excel file of contact data into the recipient field - rather than selecting saved contacts or contact groups - the personalisation fields in the landing page script will show up blank. Any personalised fields in the accompanying SMS message will work however, provided they correctly reference the column headers in the uploaded data file.