Mezcle el ajo, la salsa de soja, el vinagre, el apio, la cebolleta, el tomillo, la salvia, las especias variadas, el polvo de curry, el ron, el azúcar moreno, sal y la pimienta. Abra el cerdo y haga cortes en la carne sin cortarla del todo. Reparte la mezcla sobre todo el cerdo, introduciéndola bien dentro de los cortes. Frote la parte exterior del trozo de cerdo con la mezcla y deje en la nevera toda la noche. Enrolle la carne, después átela firmemente en varios sitios con cuerda de algodón fuerte, para mantenerlo firme. Coloque un trozo de papel de aluminio sobre una bandeja para asar y ponga el trozo de carne en el centro. Bañe la carne con unas cuantas cdas de la mezcla de marinada y envuelva la carne con el papel de aluminio, dejando dentro la marinada. Hornee durante 1 ¾ h, después quite el papel de aluminio, bañe con el resto de marinada y ase durante 1 hora más. Controle de vez en vez que la carne no se seque y bañe con los jugos de la bandeja. Pase el cerdo a una fuente caliente y deje reposar en un lugar caliente durante 15 minutos antes de servir. Mientras tanto haga la salsa. Vierta los jugos de la bandeja en una cacerola. Añada la manteca. Añada el puré de tomate, el caldo, el perejil, el azúcar, la salsa de pimienta y sal. Cueza a fuego lento, suavemente, y reduzca. Sirva el cerdo con los boniatos. Adorne con rizos de cebolleta y sirva la salsa por separado.